Что такое кодек для mp4-видео в python OpenCV

fourcc = cv2.cv.CV_FOURCC(*'XVID')

Вышеприведенная строка используется для видео AVI. Таким же образом, какой кодек мы используем для mp4-видео в Ubuntu?

Ответ 1

Кодек H.264.

Один из них должен работать для вас:

fourcc = cv2.cv.CV_FOURCC(*'H264')
#or 
#fourcc = cv2.cv.CV_FOURCC(*'X264')

Однако я должен предупредить вас, что вам, вероятно, понадобится установить библиотеки ffmpeg и x264 поэтому, поскольку вы находитесь в Ubuntu, попробуйте выполнить следующую команду в терминале:

sudo apt-get install ffmpeg x264 libx264-dev

Также ознакомьтесь с этой ссылкой из учебных пособий OpenCV для получения более подробной информации о видах кодов FourCC, доступных для вашей платформы.

В приведенной выше ссылке написано, что X264 - это код FourCC, который вы должны использовать, но переключайтесь между ними, пока он не заработает.

Ответ 2

Вы также можете использовать 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, но h264 поддерживается веб-браузерами, если вы хотите разместить видео в Интернете.

Ответ 3

Это старый вопрос. Но если кто-то сталкивается с проблемой в последнее время, используя кодек, который не может получить сохраненное видео. Они могут использовать 0X00000021 как значение кодека для OpenCV 3 и более поздних версий.