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 几乎总是会选择合适的编解码器来进行快速音频编码。