【发布时间】:2021-09-13 21:20:22
【问题描述】:
假设我正在从数据流中读取数据,并且该流正在发送 h264 视频源的内容。鉴于我从该流中读取,并且我有一些由不确定数量的帧(NAL?)组成的数据。鉴于我知道原始视频的帧速率和大小,我将如何将此 sn-p 转换为我可以查看的 mp4?该视频不包含音频。
我想用 nodejs 来做这件事吗?我这样做的尝试没有产生任何类似于有效的 h264 文件以转换为 mp4。到目前为止,我的想法是剥离数据中第一个找到的起始代码之前的所有数据,并将其输入文件并使用 ffmpeg(目前只是在命令行中测试)将文件转换为 mp4。
这样做的正确方法是什么?
即。像这样的东西(它在 Typescript 但同样的东西)
//We assume here that when this while loop exist at least one full frame of data will have been read and written to disk
let stream: WriteStream = fs.createWriteStream("./test.h264")
while(someDataStream.available()) { //just an example not real code
let data: Buffer = someDataStream.readSomeData() //just an example not a real method call
let file = null;
try {
file = fs.statSync("./test.h264");
} catch (error) {
console.error(error)
}
if(!stream.writable) {
console.error("stream not writable")
} else if(file == null || file.size <= 0) {
let index = data.indexOf(0x7C)
console.log("index: " + index)
if(index > 0) {
console.log("index2: " + data.slice(index).indexOf(0x7c))
stream.write(data.slice(index))
}
} else {
stream.write(data)
}
}
【问题讨论】:
-
问题很明显,我在问如何去做上面描述的事情
标签: node.js video-streaming video-processing h.264