【发布时间】:2022-10-21 23:44:29
【问题描述】:
这是一个初学者的问题,但在研究了几天后我无法找出答案:
我希望 ffmpeg 提取视频的音频部分并将其保存在 .ogg 容器中。如果我在终端中运行以下命令,它会按预期工作:
ffmpeg -i example.webm -vn -acodec copy example.ogg
为方便起见,我想在脚本中执行此操作。但是,如果我将变量传递给 ffmpeg,它显然只考虑第一个单词并产生错误“没有这样的文件或目录”。
我注意到我的终端用 \ 转义了空格,所以我将它包含在我的脚本中。但这并不能解决问题。
有人可以向我解释一下,为什么 ffmpeg 不考虑在脚本中传递给它的整个变量,同时在终端中传递相同的内容时正常工作?
这是我的脚本,它将带有 \ 转义的空格的文件名传递给 ffmpeg:
#!/bin/bash
titelschr=$(echo $@ | sed "s/ /\\\ /g")
titelohne=$(echo $titelschr | cut -d. -f 1)
titelogg=$(echo -e ${titelohne}.ogg)
ffmpeg -i $titelschr -vn -acodec copy $titelogg
非常感谢您!
【问题讨论】: