2019年6月30日日曜日

ffmpegで変換時のメタ情報文字化けに対処する

ffmpegを使用してデータを処理する場合、メタ情報に日本語の情報が入っていることがある。最近のデータを変換する場合は文字化けすることなく変換できるのだが、昔生成されたデータを変換する場合は文字化けしてしまうことがあった。
対処方法としては、オプションを付ける、ソースコードを修正して文字化けしないようにするなど、色々あるようだが、自分の直面した問題では前者は効果がなかったし、後者は面倒である。
そこで、変換する際にメタ情報を自分で指定して処理するようにしたところ、上手く変換することができた。

メタ情報の指定には「-metadata」オプションを使う。

ffmpeg.exe -i 元のファイル名 -metadata [メタ情報名]="メタ情報" 保存先

メタ情報の名前は「ffprobe.exe」を使えば取得できる。

ffprobe.exe -show_format -show_streams ファイル名

コマンドを実行すると、大量の情報が出力される。「TAG:」がついている情報が、今回指定すべき「メタ情報名」である。最後の方に出力されているはず。
アーティスト名が文字化けしていれば「TAG:artist=fツ巻」という風に表示されているだろう。ffmpegで自分でアーティスト名を指定する場合は

ffmpeg.exe -i 元のファイル名 -metadata artist="アーティスト名" 保存先

とすればよい。メタ情報を複数指定する場合は

ffmpeg.exe -i 元のファイル名 -metadata artist="アーティスト名" -metadata album="アルバム名" -metadata title="題名" 保存先

のように書く。Windowsの環境であれば「ミュージック\アーティスト名\アルバム名\題名」の順番で音楽が保存されるので、スクリプトを使用すれば簡単にメタ情報を正確に書き換えられる。日本語の文字化けに悩んでる方はぜひ試してほしい。

0 件のコメント:

コメントを投稿