使用ffmpeg-python将mkv文件转换为mp4

问题描述

我有很多要转换为.mp4的.mkv文件,因此我决定尝试用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

解决方法

好吧,答案总是比您期望的简单。

归结为:

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与脚本位于同一目录中。