Я делаю видеоредактор в Python с OpenCV и тестирую различные комбинации кодеков и форматов файлов. В этом примере я сосредоточен на форматах avi
и mp4
. Я пробовал несколько разных четырехсимвольных кодеков (http://www.fourcc.org/codecs.php), и все они сохранили фактический mov ie, который я могу воспроизвести.
Непонятно что, когда я перезагружаю их и извлекаю код c из mov ie, оказывается, что только mov ie, сохраненный как avi
, кажется, был сохранен с использованием исходный код c. Ниже у меня есть диаграмма, показывающая код c, используемый для кодирования (созданный с использованием cv2.VideoWriter_fourcc()
), а затем соответствующий код c, извлеченный из видео после его последующей загрузки (извлеченный с помощью get(cv2.CAP_PROP_FOURCC)
). Я также указываю размер в МБ в скобках.
Для avi (закодировано -> извлечено):
MJPG -> MJPG (3.9)
FFV1 -> FFV1 (12.3)
DIVX -> DIVX (0.7)
Для mp4:
MJPG -> mp4v (3.9)
FFV1 -> avc1 (26.1)
DIVX -> mp4v (0.7)
Так что вы можете убедитесь, что кодировка не соответствует типам файлов mp4, хотя размеры файлов примерно совпадают. Все видео выглядят примерно одинаково для avi и mp4.
Эти метаданные из загруженных фильмов не заслуживают доверия для mp4, не работает ли кодировка для mp4, поэтому выбирается значение по умолчанию или что-то еще?