使用 High profile 从 high profile mp4 文件在 OpenCV 中使用 H.264 编写视频

Writing a video with H.264 in OpenCV with High profile from a high profile mp4 file

我有高级 mp4 视频,我正在使用 opencv 在里面覆盖一些文本,但 output.mp4 是以简单的配置文件格式编写的。有没有办法写得高调 我正在使用最新的 opencv 3.4.16

开发平台为:WindowsC++ VS2019

VideoWriter videocc(destFile, VideoWriter::fourcc('M', 'P', '4', 'V'), fps, cv::Size(width, height));

我在fourcc中试过X264,H264,AVC1,但是没有高调写

是否有方法或示例可用于生成高级输出视频格式

主要配置文件编码问题请查找以下附件

您需要通过 OpenCV 将参数传递给 ffmpeg 和 libx264。

据我从官方文档中得知,OpenCV 不支持。

但是,源包含对环境变量的访问OPENCV_FFMPEG_WRITER_OPTIONS

应该能够像将参数传递给 ffmpeg 一样传递参数,除了语法有点奇怪(键和值之间的分号,对之间的管道)。

以下是对此类设施的一些讨论:

您应该将 avc1 作为 fourcc 传递。 AFAIK 这是标准定义的 fourcc。但是,它不能保证您获得 libx264,只能保证您获得一些 AVC 编码器。

我打开了 an issue for this。文档问题始终是新手尝试为开源项目做贡献的好方法。

我尝试使用 AVC1 作为 fourCC 代码(按照 Rackwitz 的建议)并设置了环境变量:

export OPENCV_FFMPEG_WRITER_OPTIONS="vcodec;x264|vprofile;high|vlevel;4.0"

为了验证是否使用了 H264 编解码器和 high profile,我检查了使用 ffprobe

效果很好。

  • OS Ubuntu 18.04
  • OpenCV 3.4.14
  • FFMPEG 3.4.8