这个命令效果很好:
ffmpeg \
-i /mnt/share/Movies2/"nameofmovie.mkv" \
-map 0:0 \
-map 0:1 \
-map 0:2 \
-c:v libx264 \
-preset veryfast \
-tune film \
-crf 18 \
-c:a:0 copy \
-c:a:1 copy \
/mnt/share/Converted/"nameofmovie".mkv
但我希望能够从文本文件中读取输入文件,或者为我要转换的每个文件一个接一个地运行此命令。有没有我可以设置的脚本来执行此操作?并非所有文件都在相同的文件夹或相同的格式,所以我只能更改文件名和格式将是伟大的。我曾经有一个bash脚本,可以为整个文件夹执行此操作,但这不是我想在这里做的。我正在使用Ubuntu服务器18.04另外我是新手这个我发现这个整个文件夹:
for i in *.avi;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -i "$i" "${name}.mov";
done
但我不知道如何适应单个文件
创建一个文本文件the_list.txt
如下:
File1.mp4:mp4
File2.avi:avi
这里第一个字段是文件名,第二个字段是源格式(可以从文件扩展中导出,但保持简单)。
创建脚本do_conv.sh:
cat the_list.txt | while read L
do
FNAME=$( echo $L | cut -d':' -f1 )
SRCFMT=$( echo $L | cut -d':' -f2 )
echo 'Next File: ${FNAME}"
if [ "${SRCFMT}" = "mp4" ]
then
ffmpeg -i ${FNAME} ....
elif [ "${SRCFMT}" = "mp4" ]
then
ffmpeg -i ${FNAME} ....
else
ffmpeg -i ${FNAME} ....
fi
done
不确定你想要什么样的转换,但希望这个模板可以帮助你入门。