我有视频与dts音频,我可以转换为单独的ac3,但我需要批量转换一堆,但不知道如何。
这是我工作的另一个文件:
for f in *.mkv;
do
ffmpeg -i "$f" -metadata:s:a:0 language=eng -metadata:s:a:0 title="AC3 5.1" -map 0:v -map 0:a:0 -map 0:a -map 0:s -c:v copy -c:a copy -c:s copy -c:a:0 ac3 -b:a:0 640k "/srv/dev-disk-by-label-hel/temp/${f%.mkv}".mkv;
done所有视频都位于我的主要“媒体”文件夹下的单独文件夹中。有些文件夹中有空格。在工作脚本中,文件被处理为分离temp。
我需要帮助:
还有下一步,如果有人有想法的话:
发布于 2019-12-30 17:39:12
要使其递归,可以使用find或激活globstar bash选项:
find -exec:找到。-name '*.mkv‘-exec ffmpeg -i {} -metadata:s:a:0 language=eng -metadata:s:a:0 title="AC3 5.1“-map 0:v -map 0:a:0 -map 0:a -map 0:s -c:v复制-c:s copy -c:a:0 -c:a:0 -c:a 640 k/srv/dev-by label-hel/temp/{} \;中的将转换为当前文件名。我没有麻烦您的${f%.mkv}".mkv;,因为这与输入文件名相同,您要删除一个.mkv,然后添加它,所以我认为这是一个错误。globstar。此选项允许**递归到0或多个子目录。商店-s球星f在**/*..mkv;做fname="${f##*/}“ffmpeg -i "$f”-metadata:s:a:0 language=eng -metadata:s:a:0 title="AC3 5.1“-map 0:v -map 0:a :a -map 0:a -map 0:s -c:v copy -c:a copy -c:a:0 ac3 -c:a:0 640 k”/srv/dev-disk-by标签-hel/temp/“ac3”;这样做是你最容易将文件复制回原稿的方法。As --只要您不介意覆盖原件,您就可以这样做:为f在**/*..mkv中搜索-s球星;do fname="${f##*/}“ffmpeg -i "$f”-metadata:s:a:0 language=eng -metadata:s:a:0 title="AC3 5.1“-map 0:v -map 0:a :a -map 0:a -map 0:s -c:v copy -c:a copy -c:a:0 -c:a:0 640 k”/srv/dev-disk-by disk-hel/temp/$fname“&&by;& mv /srv/dev-逐标签磁盘-hel/temp/$fname "$f“完成https://askubuntu.com/questions/1199487
复制相似问题