mpv: Speichern von metadata eines Streams möglich?

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

mpv: Speichern von metadata eines Streams möglich?

Beitrag von dufty2 » 20.06.2021 09:12:15

Wenn man einen (radio-)stream mittels mpv abspielt, wird (manchmal) Interpret+Titel ausgegeben:

Code: Alles auswählen

$ mpv radio-blahblah.de
File tags:
 icy-title: Olivia Newton-John - Xanadu
A: 00:00:15 / 00:00:16 (92%)
Man kann den stream selbst speichern, z. B. per "--stream-record=video1.mkv", die Metadaten bleiben meines Wissens im Hauptspeicher.
Gibt es eine Möglichkeit, diese mit-zuspeichern?

Benutzeravatar
king-crash
Beiträge: 720
Registriert: 08.08.2006 12:07:56
Lizenz eigener Beiträge: MIT Lizenz

Re: mpv: Speichern von metadata eines Streams möglich?

Beitrag von king-crash » 20.06.2021 10:52:00

Streams die über http laufen kannst du einfach mit wget in eine Datei Speichern.

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: mpv: Speichern von metadata eines Streams möglich?

Beitrag von dufty2 » 20.06.2021 11:52:52

So einfach scheint es nicht zu sein:
Hab' das mal bei einem gemacht (1min lang); aber das darauf folgende abspielen mit mpv hat keine icy-data mehr angezeigt :(

Gebe ich "mediainfo radiaoblahblah" ein, scheint es sich um eine einfache mp3 Datei zu handeln, nicht mehr:

Code: Alles auswählen

$ file radioblahblah
radioblahblah: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo
$  mediainfo radioblahblah 
General
Complete name                            : radioblahblah
Format                                   : MPEG Audio
File size                                : 949 KiB
Duration                                 : 1 min 0 s
Overall bit rate mode                    : Constant
Overall bit rate                         : 128 kb/s
Writing library                          : LAME3.97
FileExtension_Invalid                    : m1a mpa mpa1 mp1 m2a mpa2 mp2 mp3

Audio
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Format settings                          : Joint stereo
Duration                                 : 1 min 0 s
Bit rate mode                            : Constant
Bit rate                                 : 128 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 44.1 kHz
Frame rate                               : 38.281 FPS (1152 SPF)
Compression mode                         : Lossy
Stream size                              : 949 KiB (100%)
Writing library                          : LAME3.97


$

willy4711

Re: mpv: Speichern von metadata eines Streams möglich?

Beitrag von willy4711 » 20.06.2021 12:42:43

Wenn du das ohne Bauchscherzen machen willst, würde ich empfehlen:Debian streamripper
https://wiki.ubuntuusers.de/Streamripper/

Hab den zwar installiert, aber noch nie probiert, da ich keine Streams aufnehme.
Geht aber höchst problemlos, der erste Test, Optionen müsste noch "verfeinert" werden:

Erster Versuch - Tracks werden automatisch geschitten:

Code: Alles auswählen

~$ streamripper http://185.33.21.112:80/blues_64 -a
Connecting...
stream: 1.FM - Blues Radio
server name: AIS Streaming Server 8.6.5
declared bitrate: 192
meta interval: 8192

[skipping...   ] Sugar Blue - Don't Start Me Talkin' [  4,30M]
[ripping...    ] The Insomniacs - 20/20 [  5,15M]
[ripping...    ] Jimmy Rogers - My Last Meal [  4,30M]
[ripping...    ] Devon Allman - Stop Draggin My Heart Around (f. Sa [  6,51M]
Ergebnis:

Code: Alles auswählen

ls -alr "/home/willy/1.FM - Blues Radio/"
insgesamt 17172
-rw-r--r--  1 willy willy 5405195 20. Jun 12:25 'The Insomniacs - 20-20.mp3'
-rw-r--r--  1 willy willy  795314 20. Jun 12:34 ' - .mp3'
-rw-r--r--  1 willy willy 4511808 20. Jun 12:28 'Jimmy Rogers - My Last Meal.mp3'
drwxr-xr-x  2 willy willy    4096 20. Jun 12:34  incomplete
-rw-r--r--  1 willy willy 6824585 20. Jun 12:33 'Devon Allman - Stop Draggin My Heart Around (f. Samantha Fish).mp3'
drwxr-xr-x 98 willy willy   16384 20. Jun 12:18  ..
drwxr-xr-x  3 willy willy    4096 20. Jun 12:34  .
Meta-Daten sind alle da:

Code: Alles auswählen

General
Complete name                            : /home/willy/1.FM - Blues Radio/Jimmy Rogers - My Last Meal.mp3
Format                                   : MPEG Audio
File size                                : 4.30 MiB
Duration                                 : 3 min 7 s
Overall bit rate mode                    : Constant
Overall bit rate                         : 192 kb/s
Track name                               : My Last Meal
Track name/Position                      : 2
Performer                                : Jimmy Rogers
Encoded by                               : Ripped with Streamripper

Audio
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Format settings                          : Joint stereo / MS Stereo
Duration                                 : 3 min 7 s
Bit rate mode                            : Constant
Bit rate                                 : 192 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 44.1 kHz
Frame rate                               : 38.281 FPS (1152 SPF)
Compression mode                         : Lossy
Stream size                              : 4.30 MiB (100%)
Edit:
Radio Hören mit mpv ist ja ziemlich "hardcore", und ohne "Lustgewinn" :roll:
Meine Variante: Debianstreamtuner2 zum Streams suchen --->Debianaudacious

Benutzeravatar
king-crash
Beiträge: 720
Registriert: 08.08.2006 12:07:56
Lizenz eigener Beiträge: MIT Lizenz

Re: mpv: Speichern von metadata eines Streams möglich?

Beitrag von king-crash » 02.07.2021 10:38:29

Ich hab gerade noch einmal nachgeforscht. Die Metadaten laufen über ein "Protokoll" namens ICY. Im Wesentlichen werden zusätzlich zu der mp3 Datei in einem festen Datenraster noch Metainformationen gesendet. Dazu muss aber "Icy-MetaData:1" in der http Anfrage gesetzt sein, was mit wget natürlich nicht funktioniert.
https://cast.readme.io/docs/icy

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: mpv: Speichern von metadata eines Streams möglich?

Beitrag von dufty2 » 02.07.2021 20:47:36

Vielen Dank für den Hinweis, king-crash :)
king-crash hat geschrieben: ↑ zum Beitrag ↑
02.07.2021 10:38:29
Dazu muss aber "Icy-MetaData:1" in der http Anfrage gesetzt sein, was mit wget natürlich nicht funktioniert.
Doch, das geht sogar ;)

Code: Alles auswählen

$ curl -H "Icy-MetaData:1" -v  http://ice1.somafm.com/deepspaceone-128-mp3
$ wget --header="Icy-MetaData:1"  http://ice1.somafm.com/deepspaceone-128-mp3
Das Problem ist jetzt, dass (vermutlich) die metadata im mp3-file mit enthalten sind, was zur Folge hat,
dass beim Abspielen jede Sekunde unterbrochen wird, da es ja kein "reines" mp3 mehr ist:

Code: Alles auswählen

$ mpv deepspaceone-128-mp3.2
[ffmpeg/demuxer] mp3: Estimating duration from bitrate, this may be inaccurate
 (+) Audio --aid=1 (mp3 2ch 44100Hz)
AO: [pulse] 44100Hz stereo 2ch float
A: 00:00:00 / 00:00:20 (3%)
[ffmpeg/audio] mp3float: Header missing
Error decoding audio.
[ffmpeg/audio] mp3float: Header missing
Error decoding audio.
A: 00:00:01 / 00:00:20 (8%)
[ffmpeg/audio] mp3float: Header missing
Error decoding audio.
A: 00:00:02 / 00:00:20 (13%)
[ffmpeg/audio] mp3float: Header missing
Error decoding audio.
A: 00:00:03 / 00:00:20 (15%)
[0] https://wiert.me/2021/06/23/some-notes- ... meta-data/
[1] https://superuser.com/questions/1069121 ... dio-stream
[2] http://web.archive.org/web/201402060238 ... tcast.html

Antworten