在嵌套目录中批量转换多种视频格式

问题描述

我正在运行Arch / Gnome,并试图将数百种不同格式(例如mov,wmv,mkv,avi的avi)的家庭视频转换成可信任的mp4。

到目前为止,我的脚本知识完全是业余知识;

for i in *.avi; do ffmpeg -i "$i" "${i%.*}.mp4"; done

一个目录来说效果很好。有几百个我想用更多的东西代替那种单线,我可以跑步和上床睡觉。

愿望清单;

  • 递归运行

  • 从mov,wmv,mkv和avi转换而无需运行单独的脚本

  • 成功完成后删除文件

  • 保持相同的文件

  • 如果发现错误,请跳过该文件并继续操作-不要停止该过程

对于任何和/或所有这些将所有有用的东西拼凑在一起的帮助,将不胜感激。

解决方法

对于像这样的任何递归,您的第一个选择应该是尝试find,如下所示:

find . \( -name \*.avi -o -name \*.mov -o -name \*.wmv -o -name \*.mkv \) \
    -exec convertanddelete {} \;

脚本“ convertanddelete”为:

i=$1
ffmpeg -i "$i" "${i%.*}.mp4" && rm "$i"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...