【发布时间】:2013-11-24 21:53:57
【问题描述】:
我想用无损压缩的 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,在这个讨论中 (how can I use the openCV FFMPEG video I/O rather than the DirectShow one in Windows?) 有人提到在 opencv2.4 中自动包含 ffmpeg。但它不起作用....
在这里 (How to compile OpenCV 2.3 with ffmpeg support with Visual Studio 2010) 我找到了如何在 windows 上自己编译 opencv 和 ffmpeg。我成功完成了所有步骤,但仍然出现同样的错误....
【问题讨论】:
-
什么是实际的 ffmpeg 命令,您能否显示完整的 ffmpeg 控制台输出?
-
实际的 ffmpeg 命令是什么意思?当我使用我第一篇文章中包含的代码时,Opencv 会自动调用正确的 ffmpeg 命令吗?
-
不看怎么知道是正确的命令?
标签: windows opencv video ffmpeg