如何将一批avis转换为mp4?

如何将一批avis转换为mp4?

我在一个目录中有几个 avi 文件,我想使用 avconv 将其转换为 mp4。现在我知道如何为每个 avi 手动执行此操作的基本过程,即($@随每个新 avi 更改的变量在哪里):

avconv -i [email protected] -c copy [email protected]

但我想知道是否有人知道如何编写 bash 脚本来自动执行此操作。我已经尝试了提供给我的答案的修改版本优化PNG问题即:

for k in `find . -name "*.avi"`
do
   avconv -i "$k" -c copy "$k.mp4"
done

但由于 k 的形式为./filenameavconv 在作为输入给出时无法理解它。另一个问题是,尽管我使用了引号,但由于我的许多 avis 文件名中都有空格,因此出于某种原因 avconv 会针对文件名中的每个空格分隔的单词运行。

答案1

这应该循环所有.avi文件并转换它们(未经测试):

printf '%s\0' *.avi | xargs -0 -I {} -P 1 avconv -i "{}" -c copy "{}".mp4

您可以更改-P 1为例如-P 8并行转换8个文件。

相关内容