1つのディレクトリに複数の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は形式なので、./filename
avconvは入力として与えられた場合は理解できません。別の問題は、引用符を使用しても多くのavisファイル名にスペースがあるため、何らかの理由でavconvがファイル名からスペースで区切られたすべての単語で実行されることです。
答え1
その後、すべてのファイルを繰り返し.avi
変換する必要があります(テストされていません)。
printf '%s\0' *.avi | xargs -0 -I {} -P 1 avconv -i "{}" -c copy "{}".mp4
-P 1
たとえば、-P 8
8つのファイルを並列に変換するように変更できます。