フォルダ内のすべてのファイルにコマンドを適用する

フォルダ内のすべてのファイルにコマンドを適用する

2 つのオーディオ トラックを持つビデオがいっぱい入ったフォルダーがあり、それぞれのビデオから最初のトラックを削除したいと考えています。

したがって、以下を実行する必要があります:

ffmpeg -i [filename] -map 0:0 -map 0:2 -acodec copy -vcodec copy temp.mp4
mv temp.mp4 [filename]

そのフォルダ内のすべてのファイルに対して。

答え1

find . -type f \
       -exec ffmpeg -i '{}' -map 0:0 -map 0:2 -acodec copy -vcodec copy temp.mp4 \; \
       -exec mv temp.mp4 '{}' \;`

答え2

find私は次のように使います-exec:

find . -type f -name "*.mp4" -exec ffmpeg -i {} -map 0:0 -map 0:2 -acodec copy -vcodec copy {} \;

しかし、als -1 *.mp4 | ffmpegも正常に動作します。

答え3

for file in $(ls)
do
    #whatever you want to do with "${file}"
done

関連情報