ID3 Tags mit FFMPEG verändern?

Status
Für weitere Antworten geschlossen.

cp389

Benutzer
Mitglied seit
07. Jan 2014
Beiträge
532
Punkte für Reaktionen
5
Punkte
44
Hallo Zusammen,

kann mir jemand sagen, wie man den ID3 Tag eines MP3 unter Nutzung von FFMPEG verändern kann?

Der Befehl
Rich (BBCode):
DS> ffmpeg -i song.mp3 -metadata album_artist="xxx" -y song.mp3
führt dazu, dass aus dem vorher 8MB großen File plötzlich ein 300KB großes File wird. Außerdem fehlt dann plötzlich das Jahr.

Mein Ziel ist, mittels dem vorinstallierten FFMPEG möglichst ohne re-encoding einfach die Tags zu verändern.
Die Bitrate könnte (theoretisch) je Datei unterschiedlich sein und muss auch nicht unbedingt geändert werden.

Mit ID3LIB (IPKG) ist das Verändern der ID3 Tags kein Problem, aber der Album-Interpret wird leider nicht unterstützt.

Für einen Tipp wäre ich super dankbar.
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
-vcodec copy -acodec copy

ungetestet
 

cp389

Benutzer
Mitglied seit
07. Jan 2014
Beiträge
532
Punkte für Reaktionen
5
Punkte
44
Danke, aber leider gleiches Ergebnis.
Übriges ist der Track, der dabei heraus kommt, nur 5 Sekunden lang.

Andere Ideen?
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Also bei mir klappt das mit ffmpeg problemlos...

Rich (BBCode):
/volume1/temp/music # ffmpeg -i file.mp3 -metadata album_artist="ALBUM ARTIST written by ffmpeg" file_ffmpeg.mp3

Die Ausgabe ist wie folgt:

Rich (BBCode):
Input #0, mp3, from 'file.mp3':
  Metadata:
    title           : Title
    artist          : Artist
    album           : Album
    genre           : Genre
    composer        : Composer
    track           : 1/14
    disc            : 1/1
    album_artist    : Artist
    copyright       : 
    date            : 
  Duration: 00:03:08.76, start: 0.000000, bitrate: 277 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 267 kb/s
    Stream #0:1: Video: mjpeg, yuvj420p, 600x600 [SAR 1:1 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
    Metadata:
      title           : 
      comment         : Other
[mp3 @ 0x808fb40] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
Output #0, mp3, to 'file_ffmpeg.mp3':
  Metadata:
    TIT2            : Title
    TPE1            : Artist
    TALB            : Album
    TCON            : Genre
    TCOM            : Composer
    TRCK            : 1/14
    TPOS            : 1/1
    TDRL            : 2014
    TCOP            : 
    TPE2            : ALBUM ARTIST written by ffmpeg
    TSSE            : Lavf55.12.100
    Stream #0:0: Video: png, rgb24, 600x600 [SAR 1:1 DAR 1:1], q=2-31, 200 kb/s, 90k tbn, 90k tbc
    Metadata:
      title           : 
      comment         : Other
    Stream #0:1: Audio: mp3 (libmp3lame), 44100 Hz, stereo, s16p
Stream mapping:
  Stream #0:1 -> #0:0 (mjpeg -> png)
  Stream #0:0 -> #0:1 (mp3 -> libmp3lame)
Press [q] to stop, [?] for help
Trying to remove 1152 samples, but the queue is empty06.90 bitrate=   0.0kbits/s    
frame=    1 fps=0.0 q=0.0 Lsize=    3593kB time=00:03:08.78 bitrate= 155.9kbits/s    
video:642kB audio:2950kB subtitle:0 global headers:0kB muxing overhead 0.013184%

Die Datei kann abgespielt werden und alle vorhandenen Informationen bleiben auch erhalten. Die einzige Auffälligkeit die ich sofort bemerkt habe ist, dass die Dateigröße auf ca. die hälfte geschrumpft ist. Aber hier habe ich nun nicht untersucht was mit der Qualität der Ausgabe passiert.

*EDIT:
Was die Qualität betrifft, die Bitrate ist im outfile nur noch 56kBit/s. Ich denke das hat was mit dieser Information in der Ausgabe zu tun.

"[mp3 @ 0x808fb40] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2"

Wie man die Qualität 1:1 mitnimmt weiß ich jetzt im Moment auch nicht...

Gruß
luddi
 
Zuletzt bearbeitet:

cp389

Benutzer
Mitglied seit
07. Jan 2014
Beiträge
532
Punkte für Reaktionen
5
Punkte
44
Die Lösung ist folgende:
Rich (BBCode):
ffmpeg -i song.mpg -metadata album_artist="xxx" -acodec copy -vcodec copy song2.mp3
Das Outputfile muss also einen neuen Dateinamen bekommen.

Ich war fälschlicherweise der Annahme, dass der Album-Artist einfach in das File hinein geschrieben werden würde, wenn ich als Outputfile den gleichen Dateinamen angeben würde, weil das, zumindest das suggerierte, Verhalten von anderer Software ist.
Scheinbar ist es jedoch so, dass FFMPEG immer eine neue Datei erzeugen will, was unter Angabe des gleichen Namens jedoch damit kollidiert, dass das Inputfile nicht vollständig in den Zwischenspeicher geladen wird. Was passiert, wenn das Outputfile wieder als Inputfile genutzt wird, ist ja klar.

Da muss man erstmal drauf kommen...

Aber da ich in meinem Script ohnehin den Dateinamen verändern will, mach ich das eben so gleich in einem Rutsch.

Also danke euch zwei.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat