-1

我制作了一个压缩视频的脚本

import ffmpeg
import subprocess

result = subprocess.run("C:\\ffmpeg\\bin\\ffmpeg.exe"['ffmpeg -i output.mp4 -b 800k output.mp4'])
print(result)

当我运行它时,会出现这样的错误-

    result = subprocess.run("C:\\ffmpeg\\bin\\ffmpeg.exe"['ffmpeg -i output.mp4 -b 800k output.mp4'])
TypeError: string indices must be integers

解决办法是什么?

4

3 回答 3

1

这似乎格式不正确:

subprocess.run("C:\\ffmpeg\\bin\\ffmpeg.exe"['ffmpeg -i output.mp4 -b 800k output.mp4'])

我很确定你只是想要这个:

result = subprocess.run(["C:\\ffmpeg\\bin\\ffmpeg.exe", "-i", "output.mp4", "-b", "800k",  "output.mp4"])

或者也许只是这样:

result = subprocess.run("C:\\ffmpeg\\bin\\ffmpeg.exe -i output.mp4 -b 800k output.mp4")

另外,不确定输入文件和输出文件output.mp4是否相同是否是个好主意。

于 2020-10-21T05:22:11.060 回答
0

好吧,看看你试图通过的论点。我插入了一个换行符来帮助阅读:

"C:\\ffmpeg\\bin\\ffmpeg.exe"
    ['ffmpeg -i output.mp4 -b 800k output.mp4']

第一行是一个字符串。你跟着一个括号。接下来必须是字符串的下标。你以为你在做什么?

于 2020-10-21T05:19:24.993 回答
0

"C:\\ffmpeg\\bin\\ffmpeg.exe"['ffmpeg -i output.mp4 -b 800k output.mp4'] 正如@Prune 指出的那样,当您使用另一个字符串索引字符串时会发生错误,这是不正确的。传递参数的正确方法subprocess.run

result = subprocess.run("[C:\\ffmpeg\\bin\\ffmpeg.exe", 'ffmpeg -i output.mp4 -b 800k output.mp4']) 如果要添加更多参数,可以使用位置参数。

于 2020-10-21T05:39:45.653 回答