如何使用python从具有相同属性的多个视频文件中删除两个音频流中的一个特定流



我有一个文件夹,里面有200个(或更多)视频文件,每个文件的大小约为70MB(这无关紧要),包含一个视频、一个文本和两个音频流,音频流属于两种不同的语言。所有文件都具有相同的两种语言音频流。因此,如何从每个文件中删除用户选择的语言的一个特定音频流,并保持其他所有内容不变。对于单个文件,我本可以使用mkvcleaver或其他一些GUI工具。甚至是ffmpeg。但由于它的重复性,就像python的禅宗一样,我认为它可以自动化。我如何在Python 3.4中做到这一点?

我找到了答案。我使用mkvtoolnix命令删除ID为1的音频。使用os.listdir()创建了一个列表然后,对于给定的格式文件,使用subprocess.call()函数循环它,只需替换listdir()中的文件名。它奏效了。感谢您的支持。我欢迎编辑,这是我第一次来这里。
import os
from subprocess import call
files = os.listdir("D:\Media\TV Shows\Naruto")
frmt = input('Enter the file format:')
files = [i for i in files if i[-3:]==frmt ]
print(files)
for filegoeshere in files:
    fun = '''"C:Program FilesMKVToolNixmkvmerge.exe" -o "D:\Media\TV Shows\Naruto\'''+filegoeshere[:-4]+'''_jp.mkv"  "--default-track" "0:yes" "--forced-track" "0:no" "--display-dimensions" "0:640x480" "--language" "2:jpn" "--track-name" "2:Japanese" "--default-track" "2:no" "--forced-track" "2:no" "--track-name" "3:English" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "2" "-d" "0" "-s" "3" "-T" "--no-global-tags" "D:\Media\TV Shows\Naruto\'''+filegoeshere+'''" "--track-order" "0:0,0:2,0:3"'''
    call(fun)

最新更新