ffmpeg stdin中的字节流被覆盖

时间:2019-03-01 02:54:04

标签: ffmpeg h.264

我正在尝试通过STDIN将原始的h264帧通过管道传输到ffmpeg,但是我得到

 [h264 @ 0x3ced540] bytestream overread -28
 [h264 @ 0x3ced540] error while decoding MB 52 6, bytestream -28

当我使用磁盘上的文件时,没有错误。

fd_ffmpeg = popen("/root/ffmpeg -y -hide_banner -loglevel trace -f h264 -i pipe:0 -vcodec copy -an -movflags +frag_keyframe+empty_moov+default_base_moof -threads 1 -f mp4 \"/root/out.mp4\"", "w");

fwrite(p.data(), 1, p.size(), fd_ffmpeg);

我正在尝试实时创建mp4,因为要进行流式传输。

编辑:我取得了一些进展,这是因为fwrite返回了部分写入。现在的错误是

Could not write header for output file #0 (incorrect codec parameters ?): Immediate exit requested

EDIT2:好吧,现在的问题似乎是,如果STDIN关闭,FFMPEG才开始处理并输出视频。无论如何,它是否可以在流模式下逐帧运行以输出ffmpeg?

0 个答案:

没有答案