我想编写此命令的脚本
ffmpeg -i concat:file1.mp3\|file2.mp3 -acodec copy output.mp3
合并file1.mp3
和file2.mp3
成为output.mp3
。
问题是我想要合并的文件多于 2 个。
示例
ffmpeg -i concat:file1.mp3\|file2.mp3 -acodec copy output1.mp3
ffmpeg -i concat:output1.mp3\|file3.mp3 -acodec copy output2.mp3
ffmpeg -i concat:output2.mp3\|file4.mp3 -acodec copy output3.mp3
ffmpeg -i concat:output3.mp3\|file5.mp3 -acodec copy output4.mp3
output4.mp3
是我正在寻找的结果。
这些文件实际上并不是很好地称为"file",然后是一个数字,而是 ls
按照它们应合并的顺序列出了它们。
问题
如何编写脚本,以便我可以在包含偶数或奇数文件的目录中执行它?
最佳答案
如果ffmpeg
支持两个以上文件且没有文件包含|
,且文件数量不是太多,你可以这样做:
ffmpeg -i concat:"$(ls|tr '\n' '|')"-acodec 复制出.mp3
如果没有:
for cfile in *.mp3; do
ffmpeg -i concat:myout.mp3tmp1\|$cfile -acodec copy myout.mp3tmp2
mv myout.mp3tmp2 myout.mp3tmp1
done
mv myout.mp3tmp1 <your final file name>
关于linux - 如何编写脚本,以便将输出用作输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803733/