【发布时间】:2013-08-21 21:07:46
【问题描述】:
我正在使用FFmpeg编写一个mp4文件,我从远程IP摄像头抓取位图图像并通过h.264对其进行编码,媒体容器是mp4文件,如果我只记录几分钟就可以生成MP4文件,问题是当我调用方法av_interleaved_write_frame(内存中的所有编码数据,从不释放它们)时,FFmpeg 永远不会将缓冲区数据刷新到磁盘,只有当我调用方法avio_close(oc->pb); 时,它才会将所有编码数据刷新到磁盘,我试图每次调用av_interleaved_write_frame后调用方法avcodec_flush_buffers,但没有效果。我是FFmpeg的新手,如果你熟悉FFmpeg,请帮助我。
提前致谢。
肖恩
【问题讨论】:
-
还有
avio_flush(ctx)IIRC... -
谢谢,我遇到了问题,因为我打开了音频但我从未写过任何音频帧。
标签: c++ ffmpeg h.264 mp4 flush