Bash 脚本在 while 循环中停止执行 ffmpeg - 为什么?

标签 bash loops while-loop ffmpeg

我有这个用于转换 .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/

相关文章:

linux - 在 bash 顶部添加 html 注释

bash - 在 bash 中取消设置变量检查

python - 从 Pandas 单元格中提取列表并使用列表元素作为新列

python - while循环python

php - 是否可以为按钮分配动态变量;在 while 循环中从查询中获取的每一行都会发生变化吗?

php - 在循环内转换日期会中断循环

mysql - gunzip 和 mysql 导入 - 没有这样的文件或目录

linux - 文件的文件权限

python - 如果列表(a)中的项目存在于列表(b)中,则通过更大的列表(b)迭代列表(a)以给出真/假值

ios - Swift 中的循环振动