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


13

私は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コンテナのメタデータを変更する方法を知っている人はいますか?

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

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

回答:


12

目標は、再エンコードせずにビデオファイルからオーディオのみのファイルを作成し、メディアプレーヤーが認識できるメタデータを導入することでした。環境は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はコンテナに安全にメタデータを追加できます。


3

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


環境はDebian GNU / Linuxです。
クリスC.

ffmpegのドキュメントでは、メタデータマルチプレクサー/デマルチプレクサーの使用方法が明確ではありませんが、ドキュメントリンクには結果のファイル形式が表示されます。これがどのように行われるかのコマンドラインの例を提供できますか?ありがとう。
クリスC.

@ChrisCはよく見えません。これを確認するためにaacとffmpegの仕様を確認することなく、ffmpegが尊重するメタデータがここにリストれているように見えます〜wiki.multimedia.cx / index.php ? title=FFmpeg_Metadata#Basic_Usageおよびaccはサポートされていません。他の形式のcliを使用する場合、パターン'ffmpeg -i track05.wav -metadata title = "Track#5" -metadata author = "Unknown Artist" -acodec alac -y track05.m4aに従います。一般化されたパターンはffmpeg -i <SOURCE> -metadata key = "value" <SOURCE>です。これは、あなたがたどったプロセスです:(
bootload

非常に具体的になりましょう。エンコードするメタデータの形式は何ですか?ID3について話しているのですか?最終的にどのフォーマットを使用する予定ですか?
ブートロード

AACがサポートするものを確認するために周りを見てみました。正式な形式はないかもしれませんが、Debian ID3V1とID3V2の両方で機能しているようです。Bansheeは、エディタを使用するときにID3V2タグを付けているようです。
クリスC.

1

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

MP4Box -add old.aac new.mp4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.