Страницы

Поиск по вопросам

вторник, 12 марта 2019 г.

Как конвертировать видео с avi в mkv формат

Я занимаюсь обработкой видео и столкнулся с проблемой конвертации формата avi в mkv. Для решения этой проблемы использовал библиотеку opencv, но не один кодек не смог записать видео в mkv формате.
fourcc = cv2.VideoWriter_fourcc(*'DIB ') out = cv2.VideoWriter('output.mkv', fourcc, 20.0, (frames[0].shape[1], frames[0].shape[0]))
for frame in frames: out.write(frame) out.release()
Один из вариантов записи в mkv
После этого я нашел библиотеку ffmpy она может конвертировать из любого формата в любой. Я решил, что результат своей обработки я буду сохранять в avi формат, а потом конвертировать в mkv при помощи такого кода
def convertVideo(): ff = ffmpy.FFmpeg( inputs={'output.avi': None}, outputs={'output.mkv': None} ) ff.run()
Данный фрагмент действительно конвертирует avi в mkv, но если avi файл создан при помощи opencv, то конвертация не проходит. Как записать файл в mkv формат на виндоус при помощи opencv и python? Как при помощи ffmpy конвертировать файл полученный opencv в формате avi в формат mkv?


Ответ

Решение было очень просто нужно было использовать кодек MJPG типа.
fourcc = cv2.VideoWriter_fourcc(*'MJPG') out = cv2.VideoWriter('output.mkv', fourcc, 20.0, (frames[0].shape[1], frames[0].shape[0]))
for frame in frames: out.write(frame) out.release()
Данный код позволяет записывать файлы в mkv формате.

Комментариев нет:

Отправить комментарий