web-dev-qa-db-ja.com

ffmpegを使用して、再エンコードせずにAACファイルにメタデータを追加する方法

私はffmpegを使用して、ビデオファイルからオーディオストリームのみを抽出しています。

ffmpeg -i video.mp4 -vn -acodec copy audio.aac

これにより、メタデータのないクリーンなオーディオファイルが生成されます。

メタデータを追加するために、ffmpegにはコマンドラインオプションがあります。

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac

これはエラーなしで実行されますが、出力ファイルがffprobeでチェックされる場合、メタデータタグはまったくありません。

出力コンテナをmp4に変更すると、メタデータを設定して出力ファイルに表示できます。

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4

ここに興味深いビットがあります。 Bansheeを使用して既存の.aacファイルのメタデータを編集し、ffmpegを使用して同じ方法でファイルを処理すると、元のメタデータが新しい.aacファイルに正常にコピーされます。

ffmpeg -i metadata.aac -vn -acodec copy audio.aac

ただし、メタデータを変更しようとしても効果はありません。

ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac

したがって、.aacコンテナはメタデータを保持でき、ffmpegはそれを入力から出力にコピーできますが、コピーコーデックが使用されている場合は変更できません。

誰かがffmpegに再エンコードせずにaacコンテナのメタデータを変更させる方法を知っていますか?

あるいは、ファイルが処理された後にメタデータを設定するために使用できる別の汎用ツールはありますか?

どうもありがとう。クリス。

14
Chris C.

目標は、再エンコードせずにビデオファイルからオーディオのみのファイルを作成し、メディアプレーヤーが認識できるメタデータを導入することでした。環境はDebian GNU/Linuxです。

答えを見つけるために正しい道を歩んでくれた@bootloadに感謝します。

ffmpegは、.AAC出力ファイルへのメタデータタグの追加をサポートしていないようですが、2つの回避策があります。

  1. コマンドラインユーティリティid3およびid3v2(標準リポジトリから入手可能)は、id3タグを.aacオーディオファイルに適用できます。 Nautilusはv1とv2の両方のタグスタイルを認識したため、どちらも機能するはずです。同じタグがBansheeメディアプレーヤーによって認識されました。
id3v2 -t "My Title" audio.aac
  1. ffmpegはMP4コンテナーにメタデータを追加できますが、Nautilusの.mp4拡張子はビデオファイルとして表示されます。 Apple Inc.は、MP4コンテナに非標準の拡張機能を使用して、ビデオファイル(.m4v)とオーディオファイル(.m4a)を区別しています。これらの拡張機能は、DebianでNautilusおよびffmpegによって認識されています。 、
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.m4a

nautilusが認識するオーディオのみのファイルを生成し、ffmpegはコンテナにメタデータを安全に追加できます。

12
Chris C.

目的のハードウェアは何ですか? Apple iP *デバイス用ですか?もしそうなら http://atomicparsley.sourceforge.net/ それ以外の場合 http:// ffmpeg。 org/ffmpeg.html#Examples "UTF-8-encoded INI"mex/demuxメソッドの使用(メタデータをutf8ファイルとして抽出) &変更&再挿入)。

3
bootload

MP4Box (「gpac」パッケージの一部)元のデータを変更せずにAACファイルをMP4コンテナーでエンベロープします。メタデータは、ほとんどすべてのタグ付けソフトウェアを使用して追加できます。

MP4Box -add old.aac new.mp4
1
Gid