gpt4 book ai didi

python - 在 Windows PYTHON 上连接 mpeg 文件时语法无效

转载 作者:行者123 更新时间:2023-12-04 23:06:08 25 4
gpt4 key购买 nike

我想在 Windows 7 中将所有 mpeg 文件连接到一个新文件中,我调整了环境变量并从 python shell 运行代码,但它给出了无效的语法。我是 Python 和 ffmpeg 库的新手,有什么帮助吗?

我的代码:

ffmpeg -f concat -i <(for f in glob.glob("*.mpeg"); do echo "file '$PWD/$f'"; done) -c copy output.mpeg

谢谢

最佳答案

您的示例代码是 mix 或 Python代码和 Bash代码使其无法在 Python Shell 中运行也不在 Bash Shell :)

在 Linux 上它适用于 Bash作为两个命令:
(Windows 可能没有 printf 命令)

printf "file '%s'\n" *.wav > input.txt 

ffmpeg -f concat -i input.txt -c copy output.mpeg
Python不需要 Bash的版本:
#!/usr/bin/env python3

import os
import sys
import glob
import subprocess

# get Current Working Directory (CWD)
pwd = os.getcwd()

# get list of files
if len(sys.argv) > 1:
#filenames = sys.argv[1:] # Linux
filenames = glob.glob(sys.argv[1]) # Windows
else:
filenames = glob.glob("*.mpg")

#print(filenames)

# generate "input.txt" file
with open("input.txt", "w") as f:
for name in filenames:
f.write("file '{}/{}'\n".format(pwd, name))
#f.write("file '{}'\n".format(name))

# run ffmpeg
subprocess.run('ffmpeg -f concat -i input.txt -c copy output.mpeg', shell=True)

你可以在有或没有参数的情况下运行它,即。 "*.wav"
python script.py *.wav

(仅在 Linux 上测试)
printf (和其他 Bash 命令)对于 Windows: GnuWin32

更多关于 GnuWin32

关于python - 在 Windows PYTHON 上连接 mpeg 文件时语法无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40813409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com