我正在尝试通过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?