在c ++程序中包含ffmpeg-command

时间:2016-10-05 11:56:36

标签: c++ ffmpeg video-streaming http-live-streaming ffserver

我有一个c ++程序,它从共享内存中读取渲染图像并将它们写入管道(mkfifo),这样我就可以用ffmpeg捕获它们并将它们作为实时视频通过ffserver传输。为了我的流工作,我必须单独启动程序和ffmpeg命令。 我问自己是否有可能将ffmpeg包含在程序中并避免使用管道。

我的ffmpeg命令:

ffmpeg -re -f -rawvideo -s 800x600 -pix_fmt rgb24 -i myfifo http://localhost:8090/feed1.ffm

我的问题是:

将ffmpeg-command包含在c ++程序中的最佳方法是什么?还有其他想法可以改进这个解决方案吗?

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:-1)

有两种方法:

使用system()更容易,假设你在Linux中,并启动ffmpeg命令。

if(system("ffmpeg -re -f -rawvideo -s 800x600 -pix_fmt rgb24 -i myfifo http://localhost:8090/feed1.ffm") != 0)
{
    cout << "ffmpeg failed..." << endl;
}

困难的是将库包含在项目中,并在内部使用它:Can FFmpeg be used as a library, instead of a standalone program?

要开始签出https://trac.ffmpeg.org/wiki/Using%20libav *,其中介绍了如何使用libav(ffmpeg使用的内部库),我建议您按照教程http://dranger.com/ffmpeg/tutorial01.html