如何找出使用ffmpeg和python提取音轨的文件扩展名?

see*_*rth 6 python audio ffmpeg python-3.x

我希望我的 python 程序在不更改音频编解码器的情况下从各种视频文件中提取音轨。为此,我调用以下命令:

ffmpeg -i "input" -vn -acodec copy "output.???"
Run Code Online (Sandbox Code Playgroud)

但是,这仅适用于输出文件的文件扩展名已知的情况。有没有办法找出对应的文件扩展名?

小智 0

如果您使用带有少量输入类型的 python,您可能会编写代码来使用文件扩展名来确定 copy.ext 选择?

if filename[-4:] == '.mp4':
    my_ext = '.m4a'  #etc....
outnames = []
for i in range(len(filenames)):
    outnames.append(filenames[i][:-4]+my_ext[i]) #list of .ext
Run Code Online (Sandbox Code Playgroud)

然后创建一个完整的“命令列表”,通过 subprocess.Popen() 通过管道传输到窗口。执行时,使用 try: except: 块来获取任何first.guess.failures 并执行快速“-vn -ab 256k -y”切换,ffmpeg 几乎总是会选择合适的编解码器来进行快速音频编码。