OpenCV 流使用 H264 (mp4) 编解码器捕获 CAM

Posted

技术标签:

【中文标题】OpenCV 流使用 H264 (mp4) 编解码器捕获 CAM【英文标题】:OpenCV stream captured CAM with H264 (mp4) codec 【发布时间】:2012-07-03 21:00:02 【问题描述】:

我喜欢流式传输由 opencv 捕获的网络摄像头图片。我考虑使用 ffmpeg 和 live555 的解决方案(不幸的是,它们的文档记录不太好)。我的问题是:

    如何将捕获的图像转换为 H264 格式,以便图片/秒匹配。如果它处于循环中,我会获得超过 25 张图片/秒,并且视频速度很快。

    如何通过 rtp / rtps 或类似的方式在网络上直接流式传输转换后的 H264 流。

感谢您的帮助!

【问题讨论】:

【参考方案1】:
    这是一个常见问题。 如果您不需要分发您的软件(私人使用/服务器端/开源),您可以使用用x264 encoder 编译的FFMpeg,在 FFMpeg 的配置脚本中有一个配置标志。 如果您确实需要分发您的软件,我不知道任何 LGPL 许可库,我相信没有这样的库。您必须使用一些付费解决方案。 您应该实现 DeviceSource.cpp,参见 DeviceSource.hh 并将其用作 FramedSource。

编辑:Apple 公开了视频编码器 API,允许在 ios8 中访问 h264 帧流

【讨论】:

【参考方案2】:

有关如何使用 x264 和 Live555 编码和流式传输帧的示例,请参见以下内容:

    spyPanda 开源项目。 How to write a Live555 FramedSource to allow me to stream H.264 live所以问题。

【讨论】:

以上是关于OpenCV 流使用 H264 (mp4) 编解码器捕获 CAM的主要内容,如果未能解决你的问题,请参考以下文章

opencv 中 mpeg 解码器的 4 char id 是啥

ffmpeg用于将视频编码为H264编解码器格式

使用 FFMpeg 将 FLV 流式传输到 RTMP,使用 H264 编解码器和 C++ API 到 flv.js

“无法解码媒体资源 FILEPATH/FILENAME.mp4。”尝试在 Firefox 35 上播放 h264 编码文件时

OpenCV中的mp4视频编解码器

如何在 Xcode 中使用 OpenCV 3.4.14 识别 .mp4 视频文件的编解码器?