CMDでメタデータ出力(test.mp3のメタデータをout.txtに出力)

============

ffmpeg -i "test.mp3" -f ffmetadata "out.txt"

============

 

C#で投げてtxtに出力(test.mp3のメタデータをout.txtに出力)

============

var proc = new Process(); 

proc.StartInfo.FileName = "ffmpeg.exe"; 

proc.StartInfo.Arguments = string.Format("-i {0} -f ffmetadata {1}", "\"" +test.mp3 + "\"","out.txt");

proc.StartInfo.CreateNoWindow = true; 

proc.StartInfo.UseShellExecute = false; 

proc.Start(); 

proc.WaitForExit(); 

proc.Close();

============

 

↓暫定

C#でtextboxに表示(test.mp3の情報をtextboxに出力)

============

var proc = new Process(); 

proc.StartInfo.FileName = "ffprobe.exe"; 

proc.StartInfo.Arguments = string.Format("-i {0} -hide_banner", "\"" +test.mp3 + "\"");

proc.StartInfo.CreateNoWindow = true; 

proc.StartInfo.UseShellExecute = false; 

proc.StartInfo.RedirectStandardError = true; 

proc.Start(); 

textBox.Text = proc.StandardError.ReadToEnd(); 

proc.WaitForExit(); 

proc.Close();

============

ffprobeから情報を拾ってくる

エラーは出てないのになぜかRedirectStandardOutputではなくRedirectStandardErrorに出力されるが、メタデータを含む情報を取得できる。

日本語が文字化けしてたら文字コード問題

 

CMDでメタデータを書き込み(out.txtのメタデータをtest.mp3に書き込みtest2.mp3で出力)

============

ffmpeg -i "test.mp3" -i "out.txt" -map_metadata 1 -codec copy "test2.mp3"

============

音声を再エンコードする必要がないので-codec copyで飛ばしている

同名のファイルへ出力しようとするとエラーになる(上書き的なことはできない?)

out.txtの文字コードがShift_JIS(ANSI)だと文字化けするのでUTF8(BOM無し)等にすること