Преобразование файлов mkv в mp4 с помощью ffmpeg-python

У меня есть много файлов .mkv, которые я пытаюсь преобразовать в .mp4, поэтому я решил попробовать запрограммировать решение на python. Через несколько часов, пытаясь понять, как копировать подпапки, я отказался от этого и решил продолжить преобразование отдельных подпапок, а затем скопировать их в другой каталог.

Я сделал простой скрипт, который должен конвертировать файлы .mkv, которые находятся в той же папке, что и скрипт. Тем не менее, я продолжаю получать эту ошибку:

FileNotFoundError: [WinError 2] Система не может найти указанный файл

Вот мой код:

import os
import ffmpeg

start_dir = os.getcwd()

def convert_to_mp4(mkv_file):
    no_extension = str(os.path.splitext(mkv_file))
    with_mp4 = no_extension + ".mp4"
    ffmpeg.input(mkv_file).output(with_mp4).run()
    print("Finished converting {}".format(no_extension))

for path, folder, files in os.walk(start_dir):
    for file in files:
        if file.endswith('.mkv'):
            print("Found file: %s" % file)
            convert_to_mp4(file)
        else:
            pass


person myth0s    schedule 25.10.2020    source источник


Ответы (1)


Что ж, ответ всегда проще, чем вы ожидаете.

Это сводилось к следующему:

def convert_to_mp4(mkv_file):
    name, ext = os.path.splitext(mkv_file)
    out_name = name + ".mp4"
    ffmpeg.input(mkv_file).output(out_name).run()
    print("Finished converting {}".format(mkv_file))

for path, folder, files in os.walk(start_dir):
    for file in files:
        if file.endswith('.mkv'):
            print("Found file: %s" % file)
            convert_to_mp4(os.path.join(start_dir, file))
        else:
            pass

Убедитесь, что ffmpeg.exe находится в том же каталоге, что и скрипт.

person myth0s    schedule 25.10.2020