Jump to content

DMS (DVBViewer auch) öffnet stream doppelt


wuffzack

Recommended Posts

Mir ist (unangenehm) aufgefallen, dass der DMS gerne http:// .. ts Dateien "doppelt" öffnet.

DVBViewer verhält sich genauso.

 

Spiele ich einen Stream öffnet DMS den link mit einem HTTP GET. Im HTTP request macht er ein "Icy-MetaData: 1" tag, dann liest er etwas Videodaten, schliesst dann die Verbindung und macht quasi zeitgleich erneut eine zweite Verbindung auf. Diesmal lässt er das "Icy-MetaData: 1" im HTTP Request Header weg und liest den stream ganz prima, bis ich stoppe.

Das funktioniert fein, ist aber irgendwie ... suboptimal, wenn man einen Anbieter hat, der eine begrenzte Anzahl von Verbindungen erlaubt. Es kann vorkommen, dass das zweite Öffnen schief geht, oder noch schlimmer, eine parallel laufende Aufnahme unterbrochen wird, weil der Provider den laufenden Stream der Aufnahme kappt, wenn nur 2 Verbindungen erlaubt sind. Durch das "doppelte Öffnen" waren es kurzzeitig ja 3.

 

Ich habe in Python einen "Proxy" programmiert, der den ersten Stream nicht schliesst und bei der zweiten Anfrage des DMS einfach die erste Verbindung weiter verwendet.

Das ist aber nur eine Notlösung und eigentlich ein ziemlicher Murks. Funktioniert aber prima, und ist für mich ein Hinweis, dass der DMS dieses "doppelte Öffnen" eigentlich nicht machen müsste.

 

Also, hier die Fragen

1.) Warum macht DMS (und DVBViewer) das? Es muss doch einen schlauen Grund dafür geben...???

2.) Kann man dieses Verhalten irgendwie abstellen?

3.) Falls nicht, wäre es schön, eine Option im DMS Tweaker zu haben.

 

Vielen Dank!

Link to comment
vor 36 Minuten schrieb wuffzack:

Warum macht DMS (und DVBViewer) das? Es muss doch einen schlauen Grund dafür geben...???

 

Weil bei Streams oft aus der URL nicht hervorgeht, welches Format dahinter steckt. Deshalb versucht der DVBViewer erst, ihn als Audio Stream / Internet Radio zu öffnen (die einfachste Möglichkeit). Bewahrheitet sich die Vermutung nicht, weiß er aber schon mehr aufgrund des Mime Types in der Antwort des Servers (sofern diese ausreichend aussagekräftig ist) und versucht es auf andere Weise.

 

vor 36 Minuten schrieb wuffzack:

2.) Kann man dieses Verhalten irgendwie abstellen?

 

Ja. Der DVBViewer/DMS ermöglicht, durch eine Pseudo-Protokollangabe das Format vorzugeben. Wenn du zum Beispiel die URL so änderst, dass sie mit ts://... anfängt, geht er davon aus, dass er einen in HTTP verpackten Transportstrom erhält. Bei hls:// würde er von HLS ausgehen. Ein ungelöstes Problem ist dabei allerdings noch, dass ein originales https://... so nicht mehr funktioniert. Eine andere Möglichkeit ist, der URL eine Pseudo-Dateiendung anzuhängen. Angenommen, du hast

 

http://stream-cdn.ok54.de:8080/$OK54

 

Die URL liefert einen Transportstrom. Du kannst das entweder im Query-Teil klarmachen durch

 

http://stream-cdn.ok54.de:8080/$OK54?xyz=.ts

 

(wobei xyz beliebig ist, könnte auch blabla sein) oder ohne Query-Teil mit

 

http://stream-cdn.ok54.de:8080/$OK54.ts

 

je nach dem, welche Art URL-Modifikation der Server akzeptiert. Bei HLS wäre die Pseudo-Dateiendung .m3u8.

 

Link to comment
4 minutes ago, Griga said:

 

Ja. Der DVBViewer/DMS ermöglicht, durch eine Pseudo-Protokollangabe das Format vorzugeben. Wenn du zum Beispiel die URL so änderst, dass sie mit ts://... anfängt, geht er davon aus, dass er einen in HTTP verpackten Transportstrom erhält. bei hls:// würde er von HLS ausgehen.

 

Superklasse, funktioniert!

 

Vielen Dank!

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...