【问题标题】:C++ example for video compression用于视频压缩的 C++ 示例
【发布时间】:2014-01-29 15:32:30
【问题描述】:

这是我的问题。 我有一个服务器和客户端应用程序。 服务器组件从数码摄像机获取视频流。然后服务器转储到网络供客户端查看流。 因为我已经将视频保存在服务器上以供以后重播,并且每帧都带有时间戳,所以对于给定的高清视频,它使用了太多的硬盘空间以及太多的网络流量带宽,所以我必须使用 h.h 压缩视频。 264 或其他开源压缩标准。

我能够从相机获取原始视频流的每一帧的句柄,问题是:是否有任何简单的 C/C++ 视频编解码器库,我可以轻松地对每一帧进行编码、保存和解码每一帧在飞行中?也许给我一些如何使用它的例子。

谢谢。

【问题讨论】:

  • h.264 编码器(或解码器)不会变得简单。 使用可能很简单,但在内部,代码几乎不可避免地相当复杂,因为 h.264 本身相当复杂。一个可能的起点是h.264 reference implementation。另一个明显的可能性是像FFMPEG 这样的打包编解码器。
  • 您或许可以尝试深入研究 VLC 以了解如何利用其依赖项。 videolan.org/developers/vlc.html 有一个部分,“VLC 使用的第三方库”。

标签: c++ video compression h.264 codec


【解决方案1】:

x264 是一款出色的免费*视频编码器。一旦您拥有 YUV240p 中的每个视频帧,它就有一个非常易于使用的 API。或者,如果您尝试使用其他编解码器和容器,libavcodec/libavformat 可能会更好。

*您的使用可能仍需要 x264 或 mpegLA 的商业许可证

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多