Donald24 Posted February 27, 2021 Share Posted February 27, 2021 Hey! Ich beschäftige mich gerade mit der Möglichkeit einen kompatibleren FLAC-Audio-Stream also ohne lossy-transcode zu mp3 aus dem DMS zu bekommen. Jegliche Anpassungen dazu in der upnpprofiles4.xml schlugen dazu bisher fehl. Für Denon/Marantz-Player ging der Weg über WAV noch relativ einfach, die korrekte Zeile war im Playstation-Profil schon hinterlegt, mußte nur im Standard-Profil eingefügt werden: <Ext name=".mp2"> <MediaFormat mime-type="audio/wav" special="" alias=".wav" transcode="-1" hassize="-1" allaudio="0" bufsize="0">*</MediaFormat> Ich verwende noch einen Squeezebox-Server, der sich allerdings an den WAVs verschluckt, offensichtlich weil er ohne Header von 44.1khz ausgeht, und dann geht gar nichts. Mit einem neuen Profil habe ich in der Sektion dann für die Squeezboxen den MP2-Stream gefüttert, was dann für native Squeezeboxen funktioniert, der Hardware-Codec der Box spielt das ab, und wird so gefiltert über ein neues Upnp-Profil: <profile name="SqueezeboxServer"> <UserAgent>.*Squeeze.*</UserAgent> <X-AV-Client-Info/> <Extensions/> <AudioExtensions/> <LiveExtensions> <Ext name=".mp2"> <MediaFormat mime-type="audio/mpeg" special="" alias="" transcode="0" hassize="0" allaudio="0" bufsize="0">*</MediaFormat> </Ext> </LiveExtensions> <PhotoExtensions/> </profile> Jetzt fehlte allerdings noch die Kompatibilität meinen ChromeCast-Audio-Playern, die sich über die CC-Audio-Bridge super in den Squeezebox-Server einbinden lassen. Über einen FFmpeg-conversion zu FLAC konnte ich dies am SB-Server auch noch erreichen, da anscheinend FFMpeg im Transcode dort einen kompatiblen Header setzt. Aber da ja FFmpeg auch am DMS bereits eingesetzt wird, frage ich mich, ob man da viel früher in der Kette nicht ein FLAC-Profil verwenden könnte. Ich hatte noch versucht über das Editieren gemäß mp3/wav-Transcode zu verfahren, nur scheint das nicht zu funktionieren, weil einfach dafür kein CodeProfil existiert. Hat das schon jmd geschafft? Quote Link to comment
Griga Posted February 28, 2021 Share Posted February 28, 2021 Dein Post ist etwas schwer verdaulich. Es geht um Live Radiostreams, die der Media Server via UPnP anbietet und die irgendwelche sonderbaren Audio-Zielgeräte empfangen sollen, was eine Transkodierung erfordert - habe ich das soweit richtig verstanden? Du hast das Problem teilweise schon mit einer Transkodierung nach .wav gelöst, was aber bei einem Gerät nicht funktioniert, eventuell weil ein Header fehlt oder nicht passt, und nun würdest du gerne .flac als Zielformat verwenden - soweit auch richtig? Die Transkodierung nach .flac kann noch niemand geschafft haben, weil der DMS dies schlicht nicht unterstützt. Kernpunkt der Sache sind die vom DMS für die Transkodierung verwendeten FFmpeg-Kommandozeilen. Die für WAV-Output sieht so aus -analyzeduration 1M -f mpegts -i "\\.\pipe\Input%s" -map 0:a:0 -acodec pcm_s16le -f wav -y "\\.\pipe\Output%s" wobei FFmpeg die Quelldaten (einen Transportstrom) über eine "Named Pipe" erhält und das Ergebnis auf gleiche Weise zurückliefert - das ist für die Transkodierung an sich aber ohne Bedeutung. "-analyzeduration 1M" gibt an, wieviel Input FFmpeg analysieren soll, bevor die Transkodierung beginnt. Man könnte das Problem auf zweierlei Weise angehen: Entweder man modifiziert die Kommandozeile für den WAV-Output so, dass es der Squeezebox gefällt - FFmpeg kennt dafür womöglich Optionen -, oder man ergänzt im DMS die Möglichkeit, nach FLAC zu transkodieren, wofür eine Kommandozeile der obigen Art erforderlich wäre. Ohne die Zielgeräte für Tests ist das aber ein Glücksspiel. Kannst du etwas in der Hinsicht liefern? Hier entsprechende Abschnitte der FFmpeg-Dokumentation: https://trac.ffmpeg.org/wiki/audio types https://www.ffmpeg.org/ffmpeg-all.html#Audio-Options https://www.ffmpeg.org/ffmpeg-all.html#flac-2 Quote Link to comment
Griga Posted February 28, 2021 Share Posted February 28, 2021 P.S. In den DMS lässt sich ein zusätzliches Zielformat leicht einbauen. Ich habe es kurzerhand mal mit -analyzeduration 1M -f mpegts -i "\\.\pipe\Input%s" -map 0:a:0 -acodec flac -ac 2 -f flac -y "\\.\pipe\Output%s" probiert (mitsamt entsprechender Manipulation der UPnPProfilesV4.xml). DVBViewer und VLC konnten den Stream via UPnP wiedergeben. Quote Link to comment
Donald24 Posted March 4, 2021 Author Share Posted March 4, 2021 Hey Griga, danke für die ausführliche Rückmeldung. Sorry, war ein wenig verbuddelt beim frickeln und schrieb so, wie es mir in die Feder floss. Ja, Du hast alles richtig rausgelesen. Ich habe festgestellt, dass sich bei FLAC einfach kompatibler gegenüber WAV verhält, dabei brauch ich z.B. beim Squeezebox-Server nichtmal eine Transcodierzeile, dass ist wahrscheinlich im Framework schon im Vorfeld hinterlegt. Dort reicht den Transcoder und das gewünschte Zielformat zu hinterlegen. Kann ich die Zeile auch im DMS hinterlegen, oder ist das im Sourcecode? Quote Link to comment
Griga Posted March 4, 2021 Share Posted March 4, 2021 vor 36 Minuten schrieb Donald24: Kann ich die Zeile auch im DMS hinterlegen, oder ist das im Sourcecode? Die ist zur Zeit im DMS hardgecodet. Ich könnte dir nur per PM eine Testversion zur Verfügung stellen. Ich habe auch schon überlegt, dass es sinnvoll wäre, die FFmpeg-Kommandozeilen für die Radio-Transkodierung konfigurierbar zu machen. Fragt sich nur wie... die UPnPProfilesV4.xml, die sich dafür zunächst anbietet, ist auf den zweiten Blick doch nicht so geeignet. Sie bestimmt, wie UPnP-Clients Inhalte präsentiert werden und wie die URLs aussehen, die sie erhalten. Die Radio-Transkodierung führt der Live Streamserver anhand der "Dateiendung" der URL durch, hat aber ansonsten überhaupt keinen Bezug zu den UPnP-Profilen. Am einfachsten wäre es wahrscheinlich, die Kommandozeilen für verschiedene Zielformate als Tweaks zu organisieren, die optional in der service.xml stehen. Der Default wären dann die bisherigen hardgecodeten Zeilen. Ich denke, das werde ich mal so probieren... Quote Link to comment
Donald24 Posted March 6, 2021 Author Share Posted March 6, 2021 Das wäre eine Super-Idee! Auch für die höherauflösende Sender, die im Ac3 ausstrahlen, wäre es doch ein Mehrwert für all die existierenden Streaming-Devices. Und wenn der Transcoder über die Dateiendung alleine getriggert auf Profile zurückgreifen könnte, halte ich für einfacher und sinnvoller, als die Upnp-Implementation aufzubohren. Keep it up! Quote Link to comment
Griga Posted March 6, 2021 Share Posted March 6, 2021 vor 14 Minuten schrieb Donald24: Und wenn der Transcoder über die Dateiendung alleine getriggert auf Profile zurückgreifen könnte, Der Live Streamserver greift wie gesagt überhaupt nicht auf die Profile zu. Braucht er auch nicht. Er erhält vom Client eine Request, die neben der Sender-ID z.B. die Endung .wav enthält. Die Entstehungsgeschichte kennt er nicht, aber er stellt durch Vergleich fest, dass ein anderes Format gefragt ist als der Sender liefert, also spannt er FFmpeg für die Transkodierung ein. Die Profile kommen ins Spiel, wenn der DMS Clients via UPnP erzählt, was er anzubieten hat und wie es sich anfordern lässt. Transkodierung findet dann irgendwann später ganz woanders statt... Wie auch immer - ich werde eine Testversion vorbereiten und dir dann via PM zur Verfügung stellen. Ich sage hier Bescheid, wenn es soweit ist. Quote Link to comment
Webturtle Posted March 7, 2021 Share Posted March 7, 2021 (edited) Hallo, ich persönlich verwende kein FLAC, da meine Player das Format nicht unterstützen, fand es aber schon immer interessant, da es eine verlustlose Komprimierung ist und der Originalzustand wie bei ZIP wieder hergestellt werden kann. Vielleicht findest Du hier etwas brauchbares. Es handelt sich um Kommandozeilen-Tools, die man ja vielleicht statt FFMpeg automatisch aufrufen lassen kann. Und frei nach den Bremer Stadtmusikant: Es leichter zu bedienendes als FFMpeg findest Du überall! https://www.heise.de/download/product/flac-34274 https://xiph.org/flac/download.html Und hier gibt es auch ein Frontend für Windows: https://sourceforge.net/projects/flacfrontend/ Viele Grüße Webturtle Edited March 7, 2021 by Webturtle Quote Link to comment
Griga Posted March 16, 2021 Share Posted March 16, 2021 Am 6.3.2021 um 09:30 schrieb Griga: Wie auch immer - ich werde eine Testversion vorbereiten und dir dann via PM zur Verfügung stellen. Ich sage hier Bescheid, wenn es soweit ist. Es ist jetzt letztendlich eine öffentliche Beta-Version des Media Servers geworden. Quote Link to comment
Donald24 Posted March 16, 2021 Author Share Posted March 16, 2021 Läuft astrein, Griga.? Dank Dir! Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.