1

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

4

2 回答 2

0

这是您在这里追求的一个很好的例子:

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

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

VS2010项目包含所有的库和包含文件所以应该只是解压的情况,在VS2010中运行.sln文件,编译运行!

VLC 源代码同时实现了 FFMPEG 和 Live555,您可以查看他们的代码以获得一些额外的指针!

祝你好运!

于 2014-06-13T01:30:22.780 回答
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 %%%

这是您设置数据的地方。

于 2014-01-09T21:19:55.950 回答