实现live555 DeviceSource以从ffmpeg编码器接收帧

时间:2012-12-16 08:08:16

标签: ffmpeg live555

我正在为流式摄像头制作应用程序。我想使用OpenCV捕获摄像头,ffmpeg作为编码器,live555作为服务器。我知道我必须在live555中实现DeviceSource.cpp来封装编码器以从ffmpeg接收帧。但是,似乎没有如何做到这一点的例子。所以任何人都可以提供一些关于实现DeviceSource的教程或示例。谢谢你提前。

2 个答案:

答案 0 :(得分:0)

DeviceSource.cpp 是实施使用实时数据的Live555 FramedSource的示例。查看DeviceSource.cpp文件并阅读注释。特别要注意deliverFrame()中的以下几行:

u_int8_t* newFrameDataStart = (u_int8_t*)0xDEADBEEF; //%%% TO BE WRITTEN %%%
unsigned newFrameSize = 0; //%%% TO BE WRITTEN %%%

这是您设置数据的地方。

答案 1 :(得分:0)

以下是您在此之后的一个很好的例子:

https://www.imc-store.com.au/Articles.asp?ID=278

这是一个c ++ VS2010项目,展示了如何使用FFMPEG对原始RGB帧进行编码,然后将该离散帧发送到Live555进行流式处理。

VS2010项目包含所有库和包含文件,因此它应该只是解压缩,在VS2010中运行.sln文件,编译并运行!

此外,VLC源代码同时实现了FFMPEG和Live555,你可以看一下他们的代码以获得一些额外的指示!

祝你好运!