我有一个 rmvb 文件路径列表,想把这个文件转换成 mp4 文件。所以希望用bash pipeline来处理。代码是
Convert() {
ffmpeg -i "$1" -vcodec mpeg4 -sameq -acodec aac -strict experimental "$1.mp4"
}
Convert_loop(){
while read line; do
Convert $line
done
}
cat list.txt | Convert_loop
但是,它只处理第一个文件并且管道退出。
那么,ffmpeg会影响bash管道吗?
最佳答案
警告:我从未使用过 ffmpeg
,但在处理有关该程序的其他问题时,似乎像 ssh
、ffmpeg
> 从标准输入中读取而不实际使用它,因此第一次调用 Convert
会在 read
获取第一行后消耗文件列表的其余部分。试试这个
Convert() {
ffmpeg -i "$1" -vcodec mpe4 -sameq -acodec aac \
-strict experimental "$1.mp4" < /dev/null
}
这样,ffmpeg
就不会从用于read
命令的标准输入中“劫持”数据。
关于bash - bash 管道中的 ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19606864/