首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FFmpeg脚本递归地将DTS音频转换为AC3

FFmpeg脚本递归地将DTS音频转换为AC3
EN

Ask Ubuntu用户
提问于 2019-12-30 07:33:43
回答 1查看 2K关注 0票数 3

我有视频与dts音频,我可以转换为单独的ac3,但我需要批量转换一堆,但不知道如何。

这是我工作的另一个文件:

代码语言:javascript
复制
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。

我需要帮助:

  • 使ffmpeg递归地转换所有mkv。
  • 对于ffmmpeg处理单独转换的mkv到我的临时dir。

还有下一步,如果有人有想法的话:

  • 使用temp中处理的视频替换原始未转换的文件。
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2019-12-30 17:39:12

要使其递归,可以使用find或激活globstar bash选项:

  1. 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,然后添加它,所以我认为这是一个错误。
  2. 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“完成
票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1199487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档