bash - 变量中的空格

标签 bash ffmpeg

我遇到了变量中空格的一些问题:

ALBUM=' -metadata album="Peregrinações Alheias"'

这个命令:

ffmpeg -i $R_IMG -r 1 -b 1800 -i $SOUND -acodec libmp3lame -ab 128k "$ALBUM" -y $OUT

返回:

Unable to find a suitable output format for ' -metadata album="Peregrinações Alheias"'

如果我从变量中取出“”:

ffmpeg -i $R_IMG -r 1 -b 1800 -i $SOUND -acodec libmp3lame -ab 128k $ALBUM -y $OUT

返回:

Unable to find a suitable output format for 'Alheias"'

而且我确定我在 bash 语法中遗漏了一些东西......


更新:

所以看起来问题不在于空格,而在于“-metadata”参数......

问题是我有很多元数据,我想将它们放在一个变量中。像这样:

META=' -metadata album="Peregrinações"-metadata title="Passeio ao PETAR"-metadata author="Rogério Madureira"-metadata date="2012"-metadata description="Áudio de um passeio ao PETAR"-metadata comment="Áudio capturado com TACAM DR-07MKII e Foto capturada com Canon PowerShot S5IS"'

然后:

ffmpeg -i $R_IMG -r 1 -b 1800 -i $SOUND -acodec libmp3lame -ab 128k $META -y $OUT

最佳答案

Bash 将引号中的单词解释为单个参数。尝试

ALBUM='album="Peregrinações Alheias"'
ffmpeg -i $R_IMG -r 1 -b 1800 -i $SOUND \
  -acodec libmp3lame -ab 128k -metadata "$ALBUM" -y $OUT

关于bash - 变量中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143700/

相关文章:

linux - 如何使目录下的所有文件在 linux 上都可读?

linux - 如何在 Mac OSX Snow Leopard 上修复 bash 中的路径变量

arrays - 在 bash 中覆盖二维数组单元格

flash - 将 swf 转换为 mp4

android - 使用JavaCV合并2个视频,第二个视频没有声音

linux - echo "$myvar"| awk 'FNR ....' 不回应任何东西

ios - Xcode 7 : Where is "Log Navigator", 而不是 "Report Navigator"?

FFmpeg - 捕获 rtsp 流并将其重新流式传输到另一个 rtsp 服务器

windows - ffmpeg -vg -filtercomplex,创建带有颜色 kway 和有限 fps 的 gif

ffmpeg - 使用 FFmpeg 解码视频帧并发送到 RabbitMQ