繁体   English   中英

OpenCV videowriter H264编解码器(ffmpeg)

[英]OpenCV videowriter H264 codec (ffmpeg)

我想用opencv保存带有无损压缩的视频,这样我就不会丢失帧的任何细节。 一切都适用于xvid编解码器但是当然这不是无损压缩,所以我发现x264编解码器是合适的。 但它不起作用,我尝试了以下示例代码,但在运行时我收到以下错误:“找不到编解码器ID为28的编码器:找不到编码器。”

cv::VideoWriter makeVideo;
makeVideo.open("makevideo//newVideo.mp4", CV_FOURCC('X','2','6','4'), 30, cv::Size(1600,1200), true);
cv::Mat image = imread("makevideo//frames//111.png");

for(int i = 0; i < 200; i++)
    makeVideo << image;

makeVideo.release();

我发现为了这个工作,我需要ffmpeg支持。 我目前正在使用opencv2.4.6并在此讨论中( 如何使用openCV FFMPEG视频I / O而不是Windows中的DirectShow? )有人提到在opencv2.4中会自动包含ffmpeg。 但它没有工作......

这里( 如何用Visual Studio 2010编译支持ffmpeg的OpenCV 2.3 )我发现如何在windows上自己编译opencv和ffmpeg。 我成功地遵循了所有步骤,但我仍然得到同样的错误....

我有同样的问题,无法找到解决方案。 所以现在我总是使用-1作为FOURCC并手动选择x264编解码器。

我设法在ubuntu上工作,记下供你参考。

  1. 为了让x264编解码器工作,您需要: 在启用x264的情况下构建FFmpeg
  2. 在调试OpenCV之前,请确保您可以使用ffmpeg生成x264

尝试以下命令来验证H264编解码器:

ffmpeg -i x264-input.mp4 -vcodec libx264 -f mp4 x264-output.mp4

按照FFmpeg官方文档从源代码安装。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM