检测到损坏的 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 默认设置的主要内容,如果未能解决你的问题,请参考以下文章