gpt4 book ai didi

bash - 将元数据标签作为变量传递给 FFMPEG

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

这个问题在这里已经有了答案:





Why does shell ignore quoting characters in arguments passed to it through variables? [duplicate]

(3 个回答)


4个月前关闭。




我正在尝试为 FFMPEG 命令(在 bash 中)生成多个元数据标签,但由于某种原因,FFMPEG 将我引用的字符串拆分为单独的参数,导致它出错。
例如:

ffmpeg -i infile.flac -acodec libmp3lame -metadata artist="my cool band" outfile.mp3
BAND='my cool band'
ffmpeg -i infile.flac -acodec libmp3lame -metadata artist="$BAND" outfile.mp3
两者都按预期工作。使用“我的酷乐队”作为艺术家元数据生成 flac 的 mp3 副本。
然而,
METADATA='-metadata artist="my cool band"'
ffmpeg -i infile.flac -acodec libmp3lame $METADATA outfile.mp3
抛出错误
[NULL @ 0x5634ee2ef1e0] Unable to find a suitable output format for 'cool'
cool: Invalid argument
我希望能够扩展它,以便 METADATA 包含我的文件的所有元数据(从 json 文件或类似文件中提取)

最佳答案

由于您使用的是 bash , $METADATA首先展开,然后在空格上拆分。如果你写了"$METADATA" , 或使用过 zsh ,它会按照你想要的方式工作。

关于bash - 将元数据标签作为变量传递给 FFMPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71376204/

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