【发布时间】:2012-01-23 23:39:55
【问题描述】:
我想从 52fps 的 RGB 图像流中生成视频文件。我发现 opencv api 使用起来非常方便(cv::VideoWriter)。问题是我只能用 VLC 播放制作的 avi;播放视频但大喊:
[0x28307b0] xcb_xv generic error: no available XVideo adaptor
任何其他视频播放器(在同一台计算机上)都无法读取和播放视频。 录制时一切看起来都不错:我得到了关于输出、帧大小、视频编解码器、fps 等的信息……没有错误。
Output #0, avi, to '01-23-12_15-24-51.avi':
Stream #0.0: Video: flv, yuv420p, 500x242, q=2-31, 7744 kb/s, 90k tbn, 52tbc
由于 OpenCv 仅支持 avi 作为视频容器,我唯一可以更改的就是视频编解码器,我尝试了(FOURCC 代码)FLV1、DIVX、DIV3,但它们都不能正常工作。
我想用不同计算机上的任何视频播放器播放此视频。我怎样才能让它工作? VideoWriter 是正确的选择吗?
非常欢迎任何建议。
谢谢。
【问题讨论】:
-
在 52 fps 时,您可能会突破 OpenCV 的极限。我会先尝试 30 fps,看看其他视频播放器对此有何反应。
-
OpenCV 依赖 FFmpeg 来完成所有低级视频相关的工作;我很确定 ffmpeg 可以超过 52 fps。无论如何,感谢我尝试过的建议,但它不起作用。
-
在创建视频文件时尝试不同的编解码器 (FOURCC)。选择一个简单的、MPEG2 或类似的东西