我正在尝试使用子进程向 ffmpeg 发送一些命令。但是我需要根据列表中的项目数量发送不同的命令。
subs = ['https://example1.vtt', 'https://example2.vtt']
link = 'https://example.m3u8'
我试过这样做:
sub_list = []
for sub in subs:
subtitles = "'-i' " + sub + " "
sub_list.append(subtitles)
result_subs = "".join(sub_list)
这使得 result_subs 成为
'-i' example1.vtt '-i' example2.vtt
然后我跑:
subprocess.run([ffmpeg, '-i', link, result_subs, '-vcodec', 'copy', '-acodec', 'copy', "test.mkv"])
但它给了我一个错误
每个
-i
和每个输入文件名,应该是你的参数向量中的一个单独条目(subprocess.run()
的输入列表)。
sub_list = []
for sub in subs:
sub_list.append('-i')
sub_list.append(sub)
subprocess.run(['ffmpeg', '-i', link] \
+ sub_list \
+ ['-vcodec', 'copy', '-acodec', 'copy', "test.mkv"])