在c++程序中包含ffmpeg命令

include ffmpeg-command in c++ program

本文关键字:ffmpeg 命令 包含 c++ 程序      更新时间:2023-10-16

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

ffmpeg命令:

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

在c++程序中包含ffmpeg命令的最好方法是什么?有没有其他的想法来改进这个解决方案?

非常感谢任何帮助。

有两种方法:

更简单的方法是使用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;
}

困难在于将库包含在项目中,并在内部使用它:FFmpeg可以用作库而不是独立的程序吗?

首先查看https://trac.ffmpeg.org/wiki/Using%20libav*,它描述了如何使用libav (ffmpeg使用的内部库),我建议您遵循http://dranger.com/ffmpeg/tutorial01.html

教程。