fourcc = cv2.cv.CV_FOURCC(*'XVID')
上記の行は、aviビデオに使用されます。同様に、Ubuntuのmp4ビデオにはどのコーデックを使用しますか?
コーデックはH.264です。
これらの1つはあなたのために働くはずです:
fourcc = cv2.cv.CV_FOURCC(*'H264')
#or
#fourcc = cv2.cv.CV_FOURCC(*'X264')
ただし、おそらくffmpeg
およびx264
ライブラリがインストールされている必要があるので、Ubuntuを使用しているため、このコマンドをターミナル:
Sudo apt-get install ffmpeg x264 libx264-dev
また、プラットフォームで使用できるFourCCコードの種類の詳細については、OpenCVチュートリアルの このリンク を確認してください。
上記のリンクでは、X264
は使用するFourCCコードですが、機能するまでコードを切り替えます。
mp4v
も使用できます
fourcc = cv2.cv.CV_FOURCC(*'mp4v')
ビデオライターは次のようになります。
out = cv2.VideoWriter('output.mp4',fourcc, 15, size)
ただし、mp4で使用できるコーデックは他にもあります。 fourcc = -1
を設定すると、これらのリストを表示できます。次のようなリストが表示されます。
OpenCV: FFMPEG: format mp4 / MP4 (MPEG-4 Part 14)
fourcc tag 0x7634706d/'mp4v' codec_id 000C
fourcc tag 0x31637661/'avc1' codec_id 001B
fourcc tag 0x33637661/'avc3' codec_id 001B
fourcc tag 0x31766568/'hev1' codec_id 00AD
fourcc tag 0x31637668/'hvc1' codec_id 00AD
fourcc tag 0x7634706d/'mp4v' codec_id 0002
fourcc tag 0x7634706d/'mp4v' codec_id 0001
fourcc tag 0x7634706d/'mp4v' codec_id 0007
fourcc tag 0x7634706d/'mp4v' codec_id 003D
....
これらはすべてmp4をサポートしていますが、ビデオをWebに配信する場合は、h264
がWebブラウザーでサポートされています。
これは古い質問です。ただし、保存されたビデオを取得できないコーデックを使用して最近問題に直面している場合。 0X00000021
OpenCV 3以降のコーデック値として。
fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
常に動作するようです。