Come usare ffmpeg per aggiungere metadati a un file AAC senza ricodifica?


13

Sto usando ffmpeg per estrarre solo il flusso audio da un file video:

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

Questo produce un file audio pulito ma senza metadati.

Per aggiungere metadati, ffmpeg ha un'opzione da riga di comando:

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

Questo viene eseguito senza errori, ma quando il file di output viene controllato con ffprobe, non ha alcun tag metadata.

Se il contenitore di output viene modificato in mp4, i metadati possono essere impostati e visualizzati nel file di output:

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

Ecco la parte interessante; se uso Banshee per modificare i metadati di un file .aac esistente, quindi uso ffmpeg per elaborare il file nello stesso modo, i metadati originali vengono copiati correttamente nel nuovo file .aac.

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

ma, i tentativi di modificare i metadati non hanno alcun effetto:

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

Quindi sembra che il contenitore .aac possa contenere metadati e ffmpeg può copiarlo dall'input all'output, ma non può modificarlo quando si utilizza il codec di copia.

Qualcuno sa un modo per ottenere ffmpeg per modificare i metadati in un contenitore AAC senza ricodifica?

In alternativa, esiste un altro strumento generico che potrei utilizzare per impostare i metadati dopo l'elaborazione del file?

Molte grazie. Chris.

Risposte:


12

L'obiettivo era produrre un file solo audio da un file video senza ricodifica e introdurre metadati riconoscibili dai lettori multimediali. L'ambiente è Debian GNU / Linux.

Vorrei ringraziare @bootload per avermi messo sulla strada giusta per trovare una risposta.

ffmpeg non sembra supportare l'aggiunta di tag metadati ai file di output .AAC, tuttavia, qui ci sono due possibili soluzioni.

  1. Le utility della riga di comando id3 e id3v2 (disponibili nei repository standard) possono applicare tag id3 a un file audio .aac. Nautilus ha riconosciuto entrambi gli stili di tag v1 e v2, quindi entrambi dovrebbero funzionare. Gli stessi tag sono stati riconosciuti dal lettore multimediale Banshee.
id3v2 -t "My Title" audio.aac
  1. ffmpeg può aggiungere metadati a un contenitore MP4, ma un'estensione .mp4 in Nautilus verrà visualizzata come file video. Apple Inc. utilizza estensioni non standard al contenitore MP4 per distinguere i file video (.m4v) dai file audio (.m4a). Queste estensioni sono riconosciute sotto Debian da Nautilus e da ffmpeg. Così,
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.m4a

produrrà un file solo audio riconosciuto da Nautilus e ffmpeg può aggiungere tranquillamente metadati al contenitore.


3

Qual è l'hardware previsto? È per un dispositivo Apple iP *? In tal caso, prova http://atomicparsley.sourceforge.net/ Altrimenti prova http://ffmpeg.org/ffmpeg.html#Examples usando il metodo mex / demux "INI con codifica UTF-8" . (Estrai i metadati come file utf8 e modifica e reinserisci).


L'ambiente è Debian GNU / Linux.
Chris C.,

La documentazione di ffmpeg non è chiara su come usare il metadata muxer / demuxer, sebbene il collegamento al documento mostri il formato di file risultante. Potete fornire un esempio da riga di comando di come ciò sarebbe fatto? Grazie.
Chris C.,

@ChrisC non ha un bell'aspetto. Senza passare attraverso le specifiche aac & ffmpeg per verificarlo, sembra che i metadati onorati da ffmpeg siano elencati qui ~ wiki.multimedia.cx/index.php?title=FFmpeg_Metadata#Basic_Usage e acc non supportati. Usando il cli per altri formati segui il modello 'ffmpeg -i track05.wav -metadata title = "Track # 5" -metadata author = "Unknown Artist" -acodec alac -y track05.m4a per esempio. Il modello generalizzato è ffmpeg -i <SOURCE> -metadata key = "value" <SOURCE>. Questo è esattamente il processo che hai seguito :(
bootload il

Diventiamo molto specifici. Qual è il formato dei metadati in cui vuoi codificare? Stiamo parlando di ID3? Con quale formato finalmente lavorerai?
Bootload

Ho dato un'occhiata in giro per vedere cosa supporta la CAA. Potrebbe non esserci un formato ufficiale, ma all'interno di Debian ID3V1 e ID3V2 sembrano funzionare entrambi. Banshee sembra applicare tag ID3V2 quando si utilizza il suo editor.
Chris C.

1

MP4Box (parte del pacchetto "gpac") avvolge i file AAC con contenitori MP4 senza alterare i dati originali. I metadati possono quindi essere aggiunti utilizzando praticamente qualsiasi software di tagging:

MP4Box -add old.aac new.mp4
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.