检测到损坏的 ffmpeg 默认设置

Posted

技术标签:

【中文标题】检测到损坏的 ffmpeg 默认设置【英文标题】:broken ffmpeg default settings detected 【发布时间】:2014-10-27 13:02:34 【问题描述】:

VideoWrite 使用 X264 Fourcc 编解码器时出现 ffmpeg 错误。我已安装所有依赖项。如何解决此问题。我一直使用的示例代码如下。

VideoWriter oVideoWriter ("path.mp4", CV_FOURCC('X','2','6','4'), 15, frameSize, false);

操作系统:Ubuntu 14.04 64位

控制台错误:

[libx264 @ 0x8d6220] broken ffmpeg default settings detected
[libx264 @ 0x8d6220] use an encoding preset (e.g. -vpre medium)
[libx264 @ 0x8d6220] preset usage: -vpre <speed> -vpre <profile>
[libx264 @ 0x8d6220] speed presets are listed in x264 --help
[libx264 @ 0x8d6220] profile is optional; x264 defaults to high
Could not open codec 'libx264': Unspecified errorOpenCV Error: Unsupported format or combination of formats (Your version of Gstreamer doesn't support this codec acutally or needed plugin missing.) in CvVideoWriter_GStreamer::open, file /home/mbox140/Development/opencv-2.4.9/modules/highgui/src/cap_gstreamer.cpp, line 518
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/mbox140/Development/opencv-2.4.9/modules/highgui/src/cap_gstreamer.cpp:518: error: (-210) Your version of Gstreamer doesn't support this codec acutally or needed plugin missing. in function CvVideoWriter_GStreamer::open

建议我解决这个问题。

【问题讨论】:

实际的ffmpeg 命令是什么(如果使用cli 工具而不是API)?实际完整的ffmpeg 控制台/日志输出是什么? @LordNeckbeard 我已经用控制台日志更新了我的问题,请查看此 如果可能,请显示完整控制台输出和命令。 ffmpeg -i input_file -acodec libmp3lame -vcodec libx264 -y output.mp4 我正在使用这个命令,得到同样的错误 你在坚持h264吗?您可以尝试使用其他编解码器,例如 MJPG。 【参考方案1】:

对于错误:

[libx264 @ 0x8d6220] broken ffmpeg default settings detected
[libx264 @ 0x8d6220] use an encoding preset (e.g. -vpre medium)
[libx264 @ 0x8d6220] preset usage: -vpre <speed> -vpre <profile>
[libx264 @ 0x8d6220] speed presets are listed in x264 --help
[libx264 @ 0x8d6220] profile is optional; x264 defaults to high

您可能需要命令 -vpre perset(例如 -vpre fast)。 也许你的 libx264 太旧了。 我在使用 2014 年构建的 ffmpeg 时遇到了同样的错误。

【讨论】:

由于 libx264 是间接调用的,因此无法在任何命令行上提供额外的 ffmpeg 开关。【参考方案2】:

我不记得你是否需要在开放的h264 支持下重新构建opencv,但可以肯定的是,标准opencv 不提供h264 编解码器。 这是一个提示:

http://answers.opencv.org/question/104346/how-to-encode-a-h264-video-on-windows/

【讨论】:

问题是关于 Linux 上的 OpenCv。【参考方案3】:

请安装 libx264-dev 并尝试用它编译 openvc3.0。关注这个link

【讨论】:

以上是关于检测到损坏的 ffmpeg 默认设置的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ffmpeg 设置默认流

Eclipse 设置已损坏。如何更改为默认值?

ffmpeg 自动检测人像然后做必要的翻转

ffmpeg录屏默认频率

更改默认更改检测策略

ffmpeg 恢复为默认字幕字体