我有这个用于转换 .mp4
的 bash 脚本视频至.mp3
声音的。
它运行,但只循环一次,尽管 /home/myname/mp4dir
中有更多 mp4 文件.
该脚本将第一个 .mp4
找到的文件到 .mp3
, 除非已经有 .mp3
文件。这应该在循环中完成,但在第一次调用 ffmpeg 后脚本停止。
为什么?
#!/bin/bash
find /home/myname/mp4dir -name "*.mp4" | while read f
do
fOut=`echo $f | sed s/mp4/mp3/`
echo "convert $f => $fOut"
if ! test -f $fOut
then
ffmpeg -i $f -vn -f mp3 $fOut
fi
done
最佳答案
答案是添加-nostdin
到 ffmpeg (不会回答这样的老问题,但仍然在相关的谷歌搜索中名列前茅)。
关于Bash 脚本在 while 循环中停止执行 ffmpeg - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12543628/