Страницы

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

среда, 22 января 2020 г.

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

#python #python_3x #opencv #video #ffmpeg


Я занимаюсь обработкой видео и столкнулся с проблемой конвертации формата 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?
    


Ответы

Ответ 1



Решение было очень просто нужно было использовать кодек 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 формате.

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

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