2011-07-04 83 views
1

我无法理解如何使用libavcodec转换(例如,从avi转换为h.264)。我可以转换视频在我的C++程序是这样的:使用ffmpeg在C++流媒体服务器中转换视频

file=popen("ffmpeg -i file.avi file.m4v"); 

我可以使用此功能,而无需等待完成视频转换过程中动态地流?

+1

如果您不想等待流程执行,最好使用'fork'和'exec'系列函数。 –

回答

2

在转码过程中,您无法对m4v文件进行流式处理。 ffmpeg在转码过程结束时写入元数据,这需要流式传输视频。完成转换后,您必须使用MP4Boxqt-fatsstart将此元数据放在开头。如果您仍想在转换过程中流式传输视频,我认为您必须将视频转换为MPEG传输流(mpeg-ts)格式。