[geht!] mimetype audio für externremux-radio, war: ffmpeg, wie mimetype festlegen?

  • Hallo, im Rahmen meiner Versuche "Internetradio" statt übers Internet aus dem (SAT-) Himmel bereit zu stellen wegen minimalster DSL-Anbindung, komme ich noch immer nicht weiter. FFMPEG transcodiert den DVB-Audio in einen stream, welcher z.B. von Quicktime nach wie vor als mimetype "video/mpeq" erkannt wird. Ich vermute, meine Ziel-Player verweigern sich deshalb, da sie nur Audio abspielen können.
    Frage: Wie kann der mimetype im Rahmen von externremux verändert werden? Ich nutze zum Konverieren folgende Zeile:

    Code
    "FFMPEG")      exec /usr/bin/ffmpeg  -probesize 32 -i - -vn -acodec libmp3lame -ab 256000 -y -f mp3 $TMP/out.mp3  &>$OUTLOG    ;;


    und rufe den stream über

    Code
    http://<ipvdr>:3000/EXTERN;FFMPEG/1043

    auf.




    Trotz

    Code
    -vn

    bleibt dabei offenbar der mimetype erhalten (reine Vermutung!) AV-Player wie itunes, foobar2000, winamp haben damit keine Probleme, aber leider mein Internetradio (reciva).


    Ich hoffe, ich bekomme das nochj zum Laufen, für jegiche Hinweise und Hilfen wäre ich dankbar

    ASUS H87-PRO (Intel G3220+4GB RAM), 3x PCI-E CineS2 Dual DBS2 Ver. 5.5,
    64bit Ubuntu 16.04.4 LTS-Server, VDR 2.3.8 (mit DDCI2+streamdevserver+vompserver+vnsiserver)
    Diskless-Clienten: 4x Raspberry-Pi als Vomp-client in HD, 2x Fire TV (Stick und Box) mit Kodi per VNSI
    DVB-S-Radio per streamdev + externremux + ffmpeg + mpd auf Internetradios (mit Reciva-Barracuda-Chipsatz)

    2 Mal editiert, zuletzt von vdrjoe ()

  • Hi,


    der Mimetyp wird nicht durch ffmpeg festgelegt, sondern ist im streamdev-plugin hardcordiert.



    server/connectionHTTP.c / Zeile 108

    Code
    if (m_StreamType == stES && (m_Apid != 0 || ISRADIO(m_Channel))) {
    						return Respond("HTTP/1.0 200 OK")
    						    && Respond("Content-Type: audio/mpeg")
    						    && Respond("icy-name: %s", true, m_Channel->Name())
    						    && Respond("");
    					} else {
    						return Respond("HTTP/1.0 200 OK")
    						    && Respond("Content-Type: video/mpeg")
    						    && Respond("");
    					}


    Edit: ändere einmal die erste Zeile, damit auch ein externer Remux als Audiostream audio/mpeg laufen kann

    Code
    if ((m_StreamType == stES || m_StreamType == stExtern) && (m_Apid != 0 || ISRADIO(m_Channel))) {
  • Na, dann muss ich wohl doch auf dem neuen Server compilieren, mal schauen, ob ich das am WE hinbekomme. Werde mir erst einmal die Sourcen ansehen.

    Code
    ... || ISRADIO(m_Channel)

    == true


    würde es ja auch schon tun; klingt eigentlich so, als ob Radio-Kanäle bereits entsprechend behandelt werden sollten. Mein Test-Sender 1043 ist DLF, sollte also Radio sein.
    Danke für die Hinweise

    ASUS H87-PRO (Intel G3220+4GB RAM), 3x PCI-E CineS2 Dual DBS2 Ver. 5.5,
    64bit Ubuntu 16.04.4 LTS-Server, VDR 2.3.8 (mit DDCI2+streamdevserver+vompserver+vnsiserver)
    Diskless-Clienten: 4x Raspberry-Pi als Vomp-client in HD, 2x Fire TV (Stick und Box) mit Kodi per VNSI
    DVB-S-Radio per streamdev + externremux + ffmpeg + mpd auf Internetradios (mit Reciva-Barracuda-Chipsatz)

  • Hi vdrjoe,


    ich mache das mit Mediatomb


    Schaue mal hier nach.


    Tschüss


    Fritzle

    1: P3 1000MHz, 384MB RAM, 160GB HD, easyVDR 0.8.06 - 2 x Nova-s - MediaTomb (E19.2°E, 13.0°E)
    2: Samsung SMT-7020S - MLD-2.0
    3: MediaMVP - Vomp
    4: Kathrein UFS-910 - BPNeutrino (28.2°E, 23.5°, E19.2°E, 16°E, 13.0°E, 9.0°E)
    5: Philips Streamium Network Music Player NP2500
    6: Asus O!Play HDP-R1
    7: LCD Toshiba 32 R 3500 - 100Hz
    8: Intel® Core™2 Duo Processor E6750, 2GB RAM, 1.2TB HD, Ubuntu 10.04LTS (Server)

  • Hi Fritzle,
    ja, mediatomb ist eigentlich auch mein Ansatz, da ich auch HDTV auf einen asusO!play oder anderen UPNP-Clienten als HDTV-Variante meiner VOMP-Clienten streamen möchte.
    Deinen Beitrag kenne ich, habe ich auch bereits nachvollzogen, nur leider ohne Erfolg. Wenn ich das richtig sehe, streamst (sieht komisch aus) Du Wav wg. -f sb16be ?
    Habe bei meinen Versuchen allerdings diese Syntax verwendet

    Code
    http//::<ipvdr>:3000/1043

    und nicht die in Deinem Posting verwendete. Sind die gleichwertig, oder funktioniert es bei Dir nur in der Schreibweise:

    Code
    URL: http://IP-VDR:3000/PES/S19.2E-1-1093-28468

    ?
    gruß vdrjoe

    ASUS H87-PRO (Intel G3220+4GB RAM), 3x PCI-E CineS2 Dual DBS2 Ver. 5.5,
    64bit Ubuntu 16.04.4 LTS-Server, VDR 2.3.8 (mit DDCI2+streamdevserver+vompserver+vnsiserver)
    Diskless-Clienten: 4x Raspberry-Pi als Vomp-client in HD, 2x Fire TV (Stick und Box) mit Kodi per VNSI
    DVB-S-Radio per streamdev + externremux + ffmpeg + mpd auf Internetradios (mit Reciva-Barracuda-Chipsatz)

    Einmal editiert, zuletzt von vdrjoe ()

  • Hi,


    habe aktuell im Mediatomb WEB Frontend z.B. für DELUXE RADIO folgendes eingestellt


    Auf das WEB Frontend vom Mediatomb kommt man wenn man http://IP-vom-Mediatomb-PC:49152/
    eingibt.


    External Link (URL)


    Title: DELUXE RADIO
    URL: http://192.168.0.30:3000/S19.2E-1-1092-10140.vdr
    Protocol: http-get
    Class: object.item
    Description: DELUXE RADIO
    Mimetype: audio/x-satellite-mpeg2


    Die URL kopiere ich vom Streamdev-Server http://IP-VDR:3000/


    Für Radio Regenbogen sieht sie so aus


    http://192.168.0.30:3000/S19.2E-1-1113-12663.vdr


    Für meinen Philips Streamium NP2500 habe ich es bis jetzt noch nicht geschafft
    das er das DVB-s Audio Mpeg2 direkt annimmt..


    Sende ihm dafür dann unkomprimierte PCM, habe mal mit MP3,FLAC und AAC
    getestet.
    Habe es nicht richtig zum laufen gebracht. Denke das mein VDR zu langsam
    ist fürs reencodieren.
    Als PCM läuft es und so habe ich nicht mehr weiter getestet.


    Tschüss


    Fritzle

    1: P3 1000MHz, 384MB RAM, 160GB HD, easyVDR 0.8.06 - 2 x Nova-s - MediaTomb (E19.2°E, 13.0°E)
    2: Samsung SMT-7020S - MLD-2.0
    3: MediaMVP - Vomp
    4: Kathrein UFS-910 - BPNeutrino (28.2°E, 23.5°, E19.2°E, 16°E, 13.0°E, 9.0°E)
    5: Philips Streamium Network Music Player NP2500
    6: Asus O!Play HDP-R1
    7: LCD Toshiba 32 R 3500 - 100Hz
    8: Intel® Core™2 Duo Processor E6750, 2GB RAM, 1.2TB HD, Ubuntu 10.04LTS (Server)

    Einmal editiert, zuletzt von Fritzle ()

  • Hallo Fritzle,


    habe es sicherheitshalber noch einmal mit Deinen Beispielwerten probiert -> geht nicht. Das war noch intensivem Lesen hier im Forum ja mein neuer Ansatz mit Mediatomb. Ich hatte das ganze bereits vor Jahren auf meinem VIA C3 Server prbiert, aber dem fehlt definitiv die Power neben all den anderen Dingen noch zu transcodieren. Der "neue" Server kann das, per externremux erzeugte Audiostreams können direkt auf einigen AV-tauglichen Playern wiedergegeben werden, diese sind offenbar "intelligent" genug, passend zu decodieren. Mein aktueller Ansatz ist, zunächst eine externremux-variante zu erstellen, welche auch mit einfachen Audioplayern läuft. Und diesen MP3 stream dann per Mediatomb an die UPNP-Internetradio zu verteilen. MP3s Streams per mediatomb funktuioniert mit einem per MPD erzeugten eigenen STream ohne Probleme. - ergo, die streams unterscheiden sich, ein Unterschied ist der mimetype. s. oben.


    Danke fürs Interesse und die Hilfestellung
    vdrjoe

    ASUS H87-PRO (Intel G3220+4GB RAM), 3x PCI-E CineS2 Dual DBS2 Ver. 5.5,
    64bit Ubuntu 16.04.4 LTS-Server, VDR 2.3.8 (mit DDCI2+streamdevserver+vompserver+vnsiserver)
    Diskless-Clienten: 4x Raspberry-Pi als Vomp-client in HD, 2x Fire TV (Stick und Box) mit Kodi per VNSI
    DVB-S-Radio per streamdev + externremux + ffmpeg + mpd auf Internetradios (mit Reciva-Barracuda-Chipsatz)

  • :bounce5
    @hulk: Danke, das wars, kann nun eine Datei im Filesystem anlegen z.b.

    Code
    rock_antenne.mp3

    mit dem Inhalt:

    Code
    http://<ipdesvdr>:3000/EXTERN;FFMPEG/1045


    (Kanal 1045 ist bei mir ROCKANTENNE, FFMPEG ein eigenes case in meiner externremux.sh)
    Diese Datei kann ich per mediatomb aus dem Filesystem veteilen.

    Ich habe die ppa-Quellen zum streamdev-plugin von yavdr benutzt und deine obengenannte Änderung eingebaut. Es lag also tatsächlich am mimetype!

    Laut Announce von schmirl gibt es ja bereits eine neue Version vom Plugin, welche sich auch im extrenremux-Teil verändert hat. Das muss ich mir dann auch einmal ansehen.


    Fazit: "InternetRadio" vom Satelliten per VDR mit streamdev-plugin, passender externremux.sh und mediatomb als UPNP-Server ist nun von meinen RECIVA-Internetradios empfangbar. Das spart ordentlich Bandbreite auf unserer schwachbrüstigen DSL-Anbindung.


    Das hat mich nun "Jahre"( mit großen Pausen zwischendrin) gekostet; aber es läuft, super!!!!


    Auf meiner X2 3800+ (S939) CPU erzeugt ffmpeg beim transcoden eines Radiokanals so um die 15% CPU-Last


    Gruß, Jörg

    ASUS H87-PRO (Intel G3220+4GB RAM), 3x PCI-E CineS2 Dual DBS2 Ver. 5.5,
    64bit Ubuntu 16.04.4 LTS-Server, VDR 2.3.8 (mit DDCI2+streamdevserver+vompserver+vnsiserver)
    Diskless-Clienten: 4x Raspberry-Pi als Vomp-client in HD, 2x Fire TV (Stick und Box) mit Kodi per VNSI
    DVB-S-Radio per streamdev + externremux + ffmpeg + mpd auf Internetradios (mit Reciva-Barracuda-Chipsatz)

    2 Mal editiert, zuletzt von vdrjoe ()

  • Zitat

    Originally posted by vdrjoe
    Laut Announce von schmirl gibt es ja bereits eine neue Version vom Plugin, welche sich auch im extrenremux-Teil verändert hat. Das muss ich mir dann auch einmal ansehen.


    Der mimetyp (und auf Wunsch weitere HTTP-Header) werden in der neuen Version von externremux.sh selbst festgelegt. Da kann sich nun jeder austoben wie er will.


    ffmpeg als Remux-Programm fehlt mir noch in der neuen eierlegenden Wollmilch-externremux. Baue das gerne mit ein. Ich bräuchte je Audio- und Video-Codec die zwingend erforderlichen Parameter und die für die Allgemeinheit sinnvollen aber optionalen Parameter. Individuell gesetzte Parameter die nicht für jedermann sinnvoll sind bitte weglassen.

  • Nach einer kleiner Einarbeitung in Redirection mit Hilfe von http://tldp.org/LDP/abs/html/io-redirection.html
    habe ich die neue externremux.sh nun soweit verstanden, dass ich "meine" Variante des alten externremux mit ffmpeg in die neue Form übertragen konnte.


    Im Anhang meine erste Minimalversion.


    Meine Internetradios mit Reciva-Barracuda-Chipsatz können den derat erzeugten Stream über mediatomb-UPNP wiedergeben. D.h. ipdio Internetradios sollten das auch können (gleiche Platform); mein muvid 715 mag den Stream noch nicht -> Formatfehler, also passt noch mindestens eine Kleinigkeit nicht.


    Wer hat Infos wie ein "ordentlicher" Stream aussehen sollte (HTTP-Header etc.). Eine funktionierende Verbindung per wireshark aufzeichen und analysieren wäre eine (aufwändige) Möglichkeit.


    Gruß, Jörg

    Dateien

    ASUS H87-PRO (Intel G3220+4GB RAM), 3x PCI-E CineS2 Dual DBS2 Ver. 5.5,
    64bit Ubuntu 16.04.4 LTS-Server, VDR 2.3.8 (mit DDCI2+streamdevserver+vompserver+vnsiserver)
    Diskless-Clienten: 4x Raspberry-Pi als Vomp-client in HD, 2x Fire TV (Stick und Box) mit Kodi per VNSI
    DVB-S-Radio per streamdev + externremux + ffmpeg + mpd auf Internetradios (mit Reciva-Barracuda-Chipsatz)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!