我的bash脚本中似乎有一个错误,经过很长一段时间我设法将其减少到这个测试用例:
find . -maxdepth 1 | while read blah
do
echo "$blah"
ffmpeg -loglevel error -i ./test.jpg -f null /dev/null
done
此输出是
/test.jpg
/test.mp4
/test.sh
如果我删除了ffmpeg调用,则输出变为this(我的预期):
./test.jpg
./test.mp4
./test.sh
这似乎仅在ffmpeg解码器被激活时才会发生,因为ffmpeg -version不会产生错误。为什么ffmpeg会以这种方式影响不相关的字符串?
我的智慧结束了,任何帮助都会受到赞赏。
答案 0 :(得分:2)
FFmpeg正在吃你的标准输入。请改为:
find | while read
do
ffmpeg -nostdin
done
Creating forks of `ffmpeg` in loop inside a shell script "loses" some iterations