使用ffmpeg后,我无法在OpenCV(python和c ++)中读取视频帧。
具体来说,我遇到了以下问题:
1)无法使用VideoCapture
打开视频文件。
2)能够使用VideoCapture
打开视频文件,但是读取零帧和/或接收大小为0x0像素的帧。
我正在粘贴下面的解决方案,希望这会有助于其他人。
在Mac OS X Sierra 10.12.5,ffmpeg 3.2.4,Python 2.7.13,g ++ 4.2.1
上遇到了这些问题答案 0 :(得分:2)
1)OpenCV无法读取与ffmpeg一样多的视频格式。因此,通常可以在VLC中播放视频,但不能在OpenCV的VideoCapture
中打开它们。因此,通常需要使用ffmpeg
等工具进行转换(请参阅下一点)。一种对我有用的格式是h.264。
2)OpenCV似乎需要YUV420,而ffmpeg
默认使用YUV444。因此,以下命令解决了我的问题:
ffmpeg -i input.avi -c:v libx264 -vf format=yuv420p output.mp4