【问题标题】:Implement live555 DeviceSource to receive frame from ffmpeg encoder实现 live555 DeviceSource 从 ffmpeg 编码器接收帧
【发布时间】:2014-06-13 09:30:22
【问题描述】:

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

【问题讨论】:

    标签: ffmpeg live555


    【解决方案1】:

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

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

    这是您设置数据的地方。

    【讨论】:

      【解决方案2】:

      这是一个很好的例子,说明你在这里追求什么:

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

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

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

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

      祝你好运!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-12
        • 2020-07-14
        • 2014-02-24
        • 1970-01-01
        • 2018-05-05
        • 1970-01-01
        • 2014-08-19
        相关资源
        最近更新 更多