web-dev-qa-db-ja.com

ffmpegを使用して、フォルダー内のすべてのmp4オーディオファイルをmp3に変換する

ffmpegを使用して、指定したフォルダー内のすべてのmp4ファイルをmp3に変換するにはどうすればよいですか。私がグーグルで見たほとんどすべてのリンクはmp4ビデオをmp3に変換することに関するすべてです。 VLCプレーヤーを介してこれを行うことができますが、膨大なコレクション〜1000のmp4オーディオファイルがあり、コマンドラインでスクリプトまたはコマンドを使用してこれを実行する必要があります。 gstreamerを介してそれを行うことは可能ですか?

11
Raulp
FileInfo[] Files = d.GetFiles("*.mp4").Union(d.GetFiles("*.<any other file extension>")).ToArray(); 

foreach (FileInfo file in Files)
            {
               // str = str + ", " + file.Name;
                  builder.Append(Path.GetFileNameWithoutExtension(file.Name));

ProcessStartInfo startInfo = new ProcessStartInfo();
       startInfo.CreateNoWindow = false;
       startInfo.UseShellExecute = false;
       startInfo.FileName = "ffmpeg.exe";
       startInfo.WindowStyle = ProcessWindowStyle.Hidden;
       startInfo.RedirectStandardOutput = !string.IsNullOrEmpty("test");
     startInfo.Arguments = "-i " + filename + ".mp4 -q:a 0 -map a " + filename + ".mp3";

}
2
Raulp

1つの方法は、bash for loopです。

.mp4ファイルのみを変換する場合:

mkdir outputs
for f in *.mp4; do ffmpeg -i "$f" -c:a libmp3lame "outputs/${f%.mp4}.mp3"; done

.m4a.mov、および.flacを変換する場合:

mkdir outputs
for f in *.{m4a,mov,flac}; do ffmpeg -i "$f" -c:a libmp3lame "outputs/${f%.*}.mp3"; done

何かを変換する場合は、「*」ワイルドカードを使用します。

mkdir outputs
for f in *; do ffmpeg -i "$f" -c:a libmp3lame "outputs/${f%.*}.mp3"; done
14
llogan