我正在为流式摄像头制作应用程序。我想使用OpenCV捕获摄像头,ffmpeg作为编码器,live555作为服务器。我知道我必须在live555中实现DeviceSource.cpp来封装编码器以从ffmpeg接收帧。但是,似乎没有如何做到这一点的例子。所以任何人都可以提供一些关于实现DeviceSource的教程或示例。谢谢你提前。
答案 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,你可以看一下他们的代码以获得一些额外的指示!
祝你好运!