bash - bash 管道中的 ffmpeg

标签 bash ffmpeg

我有一个 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,但在处理有关该程序的其他问题时,似乎像 sshffmpeg > 从标准输入中读取而不实际使用它,因此第一次调用 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/

相关文章:

linux - 从任何(非特定)目录运行 shell 脚本

database - 使用 bash 脚本从在线数据库下载文件

bash - 如何用sed捕获某组文本?

colors - ffmpeg如何在视频上放置颜色叠加

ffmpeg 卡住 - 无效删除 st

git rm -r some-file => 如果路径不存在,则 git 以 1 退出

ffmpeg - ffmpeg的x264的纯C代码

ffmpeg - 为 windows phone 8 构建 ffmpeg

iphone - 将 jpeg 实时流式传输到 iPhone 应用程序

具有部分路径的 linux 别名