在OSX上使用ffmpeg的神秘错误

时间:2015-10-19 00:54:36

标签: macos bash ffmpeg

我的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会以这种方式影响不相关的字符串?

我的智慧结束了,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

FFmpeg正在吃你的标准输入。请改为:

find | while read
do
  ffmpeg -nostdin
done

Creating forks of `ffmpeg` in loop inside a shell script "loses" some iterations