我有一堆需要转换为 AC3 的 DTS 音频视频文件。我找到了可以完成任务不同部分的命令,但我不确定如何将它们组合在一起以制作一个有效的脚本。我找到了以下脚本,可以将我所有文件中的音频转换为 AC3,但我希望它只将 DTS 音频文件转换为 AC3。脚本如下。
shopt -s globstar
for f in **/*.mkv;
do
fname="${f##*/}"
ffmpeg -i "$f" -c:v copy -c:s copy -c:a ac3 "/some/directory/$fname" &&
mv "/some/directory/$fname" "$f"
done
我还发现这个命令将返回 mkv 文件使用的音频编解码器类型。
`ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=nokey=1:noprint_wrappers=1 input.mkv`
所以我想知道如何将两者结合起来创建一个脚本来做我想做的事情。我猜我可以在脚本开头使用 ffprobe 添加一个 if 函数?像这样的东西...
shopt -s globstar
for f in **/*.mkv;
do
fname="${f##*/}"
if ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of
default=nokey=1:noprint_wrappers=1 "$f" | egrep "DTS"; then
ffmpeg -i "$f" -c:v copy -c:s copy -c:a ac3 "/some/directory/$fname" &&
mv "/some/directory/$fname" "$f"
fi
done
这有什么问题吗?自从我在高中玩图形计算器以来,我就没有写过脚本,因为我很无聊,所以任何帮助都将不胜感激。