【发布时间】:2014-11-06 19:03:40
【问题描述】:
我有一个非常大的音频 mp4 文件,其中包含几首歌曲。
我生成了一个脚本,它读取包含时间和歌曲名称的文本文件,并成功地在 3 个变量中分配了开始时间、结束时间和歌曲标题。脚本成功回显变量并返回以下格式:
00:00:00 00:10:15 Song1
00:10:15 00:14:20 Song2
等等……
现在我打算将此脚本与ffmpeg 一起使用,并将大文件的每个部分裁剪成较小的音频文件。
因此,脚本在while 循环中输入变量后,到达命令
ffmpeg -ss $START -t $END -i ${1} -acodec copy $SONGNAME.mp4
运行脚本后,前两首歌曲被裁剪,但随后整个过程停止
Press [q] to stop, [?] for help
error parsing debug value
debug=0
我检查了生成的文件,它们播放正常,但我无法知道为什么脚本在那里停止并且没有继续处理文件的其余部分(考虑到在脚本中我将 ffmpeg 替换为echo,脚本完美地回显了变量)。
换句话说,我不知道我的脚本 ffmpeg 或源音乐文件是否有问题。
【问题讨论】:
-
你能在文件中的第三首歌曲上手动运行该命令吗?第三首歌叫什么名字?它可能包含空格吗?
-
是的,它确实包含一个空格!
-
所以用双引号将你的变量括起来,就像这样
"$SONGNAME.mp4" -
是的,你的命令被解析为
ffmpeg ... -acodec copy first_word second_word.mp4,而 ffmpeg 对你想要做什么感到困惑。 -
你应该展示你的脚本。