我正在使用subprocess.run(),它使用引用文件的参数作为"./0.mkv"
告诉我它找不到文件"./0.mkv",我是否需要引用整个路径,或者有没有办法使./
正确引用?
或者也许这完全是另一回事,我不确定。
这是实际代码:
temp_file_path = "./0.mkv"
final_file_path = "./0hardsubs.mkv"
cmd = ['ffmpeg', '-i', f'"{temp_file_path}"',
'-filter_complex', f'"subtitles='{temp_file_path}'"',
f'"{final_file_path}"', '-y', '-loglevel', 'warning', '-stats']
subprocess.run(cmd)
这是输出:
"./0.mkv": No such file or directory
原来
这是另一回事。我尝试print(os.path.getsize(temp_file_path))
并收到了正确的输出,因此 Python 能够清楚地看到该文件。
一旦我删除了 ffmpeg 输入周围的双引号,过滤和输出一切正常。不确定这怎么可能,但我想这是 subprocess.run 的一个功能,它会自动清理参数?
对于任何感兴趣的人,这是最终输出:
temp_file_path = "./0.mkv"
final_file_path = "./0hardsubs.mkv"
cmd = ['ffmpeg', '-i', f'{temp_file_path}',
'-filter_complex', f'subtitles='{temp_file_path}'',
f'{final_file_path}', '-y', '-loglevel', 'warning', '-stats']
subprocess.run(cmd)