我有一个用于批量转换mp4文件的bash脚本:
#!/bin/bash
ls dr*.mp4 | grep -v -E "\.[^\.]+\." | sed "s/.mp4//g" | while read f
do
TARGET="$f.ffmpeg.mp4"
if ! [ -f $TARGET ]
then
echo $TARGET
ffmpeg -nostdin -i $f.mp4 -s 320x180 -vc h264 -acodec copy -f mp4 -y $TARGET
fi
TARGET="$f.ffmpeg.flv"
if ! [ -f $TARGET ]
then
echo $TARGET
ffmpeg -nostdin -i $f.mp4 -s 320x180 -acodec copy -y $TARGET
fi
TARGET="$f.jpg"
if ! [ -f $TARGET ]
then
echo $TARGET
ffmpeg -nostdin -i $f.ffmpeg.mp4 -ss 0 -vframes 1 -f image2 $TARGET
fi
TARGET="$f.ffmpeg.ogv"
if ! [ -f $TARGET ]
then
echo $TARGET
ffmpeg -nostdin -i $f.mp4 -s 320x176 -ar 11025 -acodec libvorbis -y $TARGET
fi
done
它只运行一次并将输入文件名转换为4种不同的格式,但不会循环到下一个输入文件名。 我尝试打乱各种转换的顺序,但脚本仍然只为一个文件名运行一次。 我尝试使用-nostdin标记运行ffmpeg,但它提示
"Unrecognized option 'nostdin'"
ffmpeg版本是0.10.6-6:0.10.6-0ubuntu0jon1~lucid2 - 我刚刚更新了来自http://ppa.launchpad.net/jon-severinsson/ffmpeg/ubuntu的ffmpeg软件包,但是没有找到更新的版本。基本系统是
Distributor ID: Ubuntu
Description: Ubuntu 10.04.1 LTS
Release: 10.04
Codename: lucid
ls dr*.mp4 | grep -v -E "\.[^\.]+\." | sed "s/.mp4//g"
的输出是什么? - slhck