Jump to content

Ton-Problem bei Swisscom-Stream


Jens Eits

Recommended Posts

Ich habe bei Zattoo und Swisscom jeweils einen Account angelegt und möchte die Sender per upnp/channelstream über den Media Server zur VU+ streamen. Das funktioniert in beiden Fällen auch. Allerdings erfolgt bei den Streams von Swisscom keine Tonwiedergabe. Als Decoder ist der LAV Audio Decoder 0.75.0 installiert. Lt. den Eigenschaften wird kein Audiostream erkannt:

2.jpg.5ab2fb38682aa6cafefdfb31f0194db6.jpg

 

Der TS Analyzer gibt folgendes aus:

 

3.jpg.6d6f3ae61938f4f2642c221e724fff11.jpg

 

Im VLC ist der Ton da. Wie könnte ich im DVBViewer doch noch zur Tonwiedergabe kommen?

 

Übrigens stockt die Bildwiedergabe im DVBViewer bei den Swisscom-Streams im Laptop (Win 10). Die Bildwiedergabe auf der VU+ über den Media Server ist hingegen flüssig. Bildwiedergabe von Swisscom im VLC auf dem Laptop ist auch flüssig. Zattoo läuft im DVBViewer mit Bild und Ton.?

Link to comment

Die Fehlermeldung "PCR/PTS Gap" auf der Eigenschaftsseite des DVBViewer Filters weist auf Probleme mit den im Stream enthaltenen Zeitstempeln hin (Lücke in der Program Clock Reference / in den Presentation Time Stamps). Dass Audio nicht in Ordnung ist, zeigen auch die im TransEdit-Analyzer angezeigten fehlenden Pakete.

 

Du kannst folgendes versuchen:

  • Auf der Eigenschaftsseite des DVBViewer Filters den Haken bei "Check Timestamp Continuity" entfernen. Danach OK und im DVBViewer Wiedergabe -> Wiedergabe neu aufbauen.
  • Haken bei "PCR entfernen" und/oder "PTS-Sprünge ignorieren" im Senderlisten-Editor des DVBViewers. Nach "Übernehmen" den Sender neu anwählen. Falls der Media Server die Änderung übernehmen soll, muss die geänderte Senderliste zusätzlich gespeichert werden (Disketten-Symbol unten).
  • Mit dem TransEdit Analyzer ein Stück aufnehmen (Rechtsklick in die PID-Liste -> Select All, dann Start Recording, etwa eine Minute laufen lassen - unter Settings -> Analyzer -> Output Directory siehst du, wo der Kram landet) und irgendwo hochladen, z.B. bei WeTransfer. Dann schaue ich mir das mal an.

 

 

Link to comment

Ok, Sample ist angekommen. Offenbar ein schwieriger Fall. Der VLC spielt bei mir aus der Datei keinen Ton ab. Bei dir?

 

Ist das Originalformat des Streams aus der URL ersichtlich? .ts oder .m3u8 oder .mpd?

 

Ich schaue es mir bei nächster Gelegenheit noch mal genauer an.

 

Link to comment

Nein, aus der Aufnahme spielt der VLC bei mir auch keinen Ton ab. Ich habe nur eine m3u mit der Senderliste. Das Originalformat kann ich da leider nicht herauslesen. Im VLC läuft beim Swisscom(=blue TV)-Stream ja der Ton. Die Eigenschaften sagen das:

 

1556584252_BlueTV.thumb.jpg.00211eb29952dc1389a19b134abde299.jpg

 

Bei den Streams von Zattoo, die ja im DVBViewer einwandfrei mit Ton laufen, sehen die Eigenschaften im VLC so aus:

 

Zattoo.jpg.1f9a3e7198f434def2e156b26e4d867e.jpg

Link to comment
1 hour ago, Jens Eits said:

Hilft das eventuell? Kannst du das Sample auch gebrauchen?

 

Nein. Der VLC hat das nach MP4 transkodiert. Als TS könnte ich es gebrauchen.

 

Das mitgesendete Inhaltsverzeichnis (die PMT) deines Samples besagt, dass ein AAC Audiostream enthalten ist. Was ich im TransEdit-Hexiewer sehe, ist aber nie im Leben ein AAC Audiostream. Deshalb erkennt der DVBViewer auch kein Audio. Keine Ahnung, was das darstellen soll.

 

4 hours ago, Jens Eits said:

Im VLC ist der Ton da.

 

Das legt den Verdacht nahe, dass der VLC etwas anderes vom Server erhält, als der DVBViewer, oder anders gesagt, der Server liest den im HTTP Header übertragenen User Agent und modifiziert seinen Output entsprechend. Es wäre interessant, was passiert, wenn der DVBViewer sich als VLC ausgibt. Dazu müsstest du im Senderlisten-Editor sowas wie

 

?addhdr=User-Agent: VLC/3.0.8 LibVLC/3.0.8

 

an die URL anhängen. Falls die URL bereits einen mit einem Fragezeichen beginnenden Query-Teil hat, muss der Anhang mit & beginnen:

 

&addhdr=User-Agent: VLC/3.0.8 LibVLC/3.0.8

 

Dieser Anhang wird vom DVBViewer ausgewertet und in dieser Form nicht an den Server übertragen. Es veranlasst den DVBViewer nur, einen anderen User Agent im HTTP Header einzutragen. Dass ein Server auf sowas Wert legt, hatten wir schon mal.

 

Link to comment

P.S.

 

9 hours ago, Griga said:

Was ich im TransEdit-Hexiewer sehe, ist aber nie im Leben ein AAC Audiostream. Deshalb erkennt der DVBViewer auch kein Audio. Keine Ahnung, was das darstellen soll.

 

Jetzt weiß ich es. Was in der PMT (Program Map Table) des Samples als AAC Audio firmiert, ist in Wirklichkeit ein Teletext-Stream, eventuell für Untertitel. Wenn man die Datei mit TransEdit öffnet, erkennt der Analyzer das im ersten Moment auch richtig, korrigiert den Eintrag in der PID-Liste aber auf AAC, sobald er die PMT gelesen hat.

 

Keine Ahnung, warum der Anbieter einen solchen Murks ausliefert... kurz gesagt ist in dem Sample überhaupt kein Audio enthalten, auch wenn es so aussieht ;)

 

Link to comment

Ja, Teletext und Untertitel sind drin in den Streams. Den Teletext habe ich im DVBViewer schon sehen können.

 

Ich habe jetzt mit dem VLC nochmal eine TS-Aufnahme gemacht und dir den Link gesandt, falls du noch Lust hast ...?

Link to comment
26 minutes ago, Jens Eits said:

Den Teletext habe ich im DVBViewer schon sehen können.

 

Den ich meine, kannst du gar nicht gesehen haben, da er in der PMT als AAC Audio gekennzeichnet ist. Es gibt in deinem Sample zwei Teletext-Streams.

 

27 minutes ago, Jens Eits said:

Ich habe jetzt mit dem VLC nochmal eine TS-Aufnahme gemacht und dir den Link gesandt, falls du noch Lust hast

 

Nicht, solange du nicht meinen obigen Vorschlag mit dem gefälschten User Agent probiert hast.

 

Link to comment

Das mit dem VLC aufgenommene Sample hat technisch einen ganz anderen Inhalt als das mit TransEdit aufgenommene. Es handelt sich in beiden Fällen mit Sicherheit um die selbe URL?

 

Ich fürchte, solange ich nicht mit der Original-URL experimentieren kann, kommen wir nicht weiter.

 

Link to comment

Anhand des Outputs der TransEdit Debug-Version, den mir @Jens Eits per PM zur Verfügung gestellt hat, konnte ich jetzt ermitteln, was bei dem Swisscom-Stream passiert und warum er im DVBViewer keinen Ton liefert.

 

Es handelt sich um einen HLS-Stream, was der DVBViewer nur erkennt, wenn man an die URL die Endung .m3u8 anhängt. Der Server liefert Video und Audio in separaten Transportstrom-Segmenten, die der DVBViewer intern für die Weiterverarbeitung zu einem zusammenführen muss. Grundsätzlich beherrscht er das, aber es kommt in diesem Fall etwas hinzu: Beide (!) Transportströme enhalten zusätzlich den selben Teletext. Das ist durch die HLS-Spezifikationen von Apple nicht abgedeckt - Teletext sehen sie überhaupt nicht vor. Aber es wäre ja auch langweilig, wenn sich alle an Spezifikationen halten würden...  ;)

 

Der DVBViewer kommt zwar mit Teletext in dem Haupt-Transportstrom (der auch Video enthält) zurecht, aber mit sowas wie Teletext in den separaten Audiosegmenten rechnet er überhaupt nicht und betrachtet den gesamten Inhalt als Audio. Notwendig wäre, den Teletext vor der Weiterverarbeitung rauszuwerfen oder getrennt zu verarbeiten.

 

Ob und wie sich das im DVBViewer sinnvoll behandeln lässt, weiß ich noch nicht. Demnächst schaue ich es mir mal genauer an. Falls es zu einer Lösung kommt, braucht es natürlich einen Tester, da ich den Stream nicht live empfangen kann....

 

Link to comment

Der Ton war beim ersten Programmstart da gewesen. Ich habe dann auf einen anderen blue TV-Sender umgeschalten und dieser hatte keinen Ton. Zurück geschalten auf den ersten Sender, dieser hatte nun auch keinen Ton mehr. Auf andere Nicht-blue TV-Sender geschalten, u. a. Zattoo, die hatten Ton. Zurück auf blue TV = kein Ton.

 

Laptop aus und wieder an. Ich habe viel zwischen den Sendern umgeschalten. Nur einige wenige Male hatten die blue TV-Sender Ton, überwiegend nicht. Ich glaube, es war so, dass die wenigen Male mit Ton nur nach Neustart waren.

Link to comment
10 minutes ago, Jens Eits said:

Ich glaube, es war so, dass die wenigen Male mit Ton nur nach Neustart waren.

 

Hilft vielleicht auch Wiedergabe -> Wiedergabe neu aufbauen?

 

Link to comment

Gerade festgestellt, wenn ich länger auf einem Sender stehen bleibe, kommt nach etwa einer knappen Minute der Ton. Ohne 'Als Datei wiedergeben'.

 

Edit: Der Ton wird aber in keinem Fall an den MediaServer weitergegeben. Ich streame ja zur VU+. Auch wenn der Ton im Laptop da ist, beim gleichen Sender zur gleichen Zeit ist auf der VU+ kein Ton.

Edited by Jens Eits
Link to comment

 

26 minutes ago, Jens Eits said:

Der Ton wird aber in keinem Fall an den MediaServer weitergegeben.

 

Der DVBViewer gibt nie den Ton an den Media Server oder sonstwas an sonstwen weiter, da er keine Serverfunktion hat. Der DMS muss alles selbst empfangen und braucht deshalb die gleichen Patches wie der DVBViewer. Die hast du aber noch nicht. Morgen sehen wir weiter...

 

Link to comment
20 hours ago, Jens Eits said:

Gerade festgestellt, wenn ich länger auf einem Sender stehen bleibe, kommt nach etwa einer knappen Minute der Ton.

 

Könnte bedeuten, dass das empfangene Audio laut Zeitstempeln im Vergleich zu Video eine Minute in der Zukunft liegt. Dann muss es halt solange warten. Sind Video und Audio danach synchron?

 

Anhand des letzten TransEdit Debug Outputs kann ich sowas nicht feststellen. Dort liegt der Audio-Beginn im Vergleich zu Video nur 4 Sekunden in der Zukunft. Das Problem weiter zu behandeln, ohne dass ich eine eigene Testmöglichkeit habe, könnte langwierig und anstrengend werden...

 

Benutzt du die URL mit angehängtem .m3u8 oder ohne? Funktioniert letzteres?

 

Ich habe dir gerade eine DMS-Testversion mit den entsprechenden Patches hochgeladen. Damit kannst du versuchen, die VU+ zu bedienen. Mal sehen, ob und wie das geht...

 

Link to comment

Ja, Video und Audio sind 100% synchron, nachdem der Ton eingesetzt hat. Ich habe sowohl mit als auch ohne .m3u8 getestet. Beides funktioniert, ohne spürbare Unterschiede. ?

 

Zur DMS-Version melde ich mich später. Bin derzeit nicht in Nähe der VU+.

 

vor 55 Minuten schrieb Griga:

Das Problem weiter zu behandeln, ohne dass ich eine eigene Testmöglichkeit habe, könnte langwierig und anstrengend werden...

Aus meiner Sicht reicht es, wenn du erst wieder Kraft reinsteckst, wenn du dir selbst einen Account dort zugelegt hast. Hattest du doch irgendwann mal vor, so hatte ich dich verstanden? Die TVHeadend-Variante funktioniert bei mir auch recht gut. Ich wollte mit meinem Beitrag dazu anregen, dass auch der DVBViewer dahingehend weiterentwickelt wird, dass auch sowas wie blue TV damit empfangen werden kann. Dies scheint noch recht jung auf dem "Markt" zu sein. Allerdings habe ich den Eindruck, dass sich kaum ein anderer DVBViewer-Nutzer dafür zu interessieren scheint. ?

Oder es kennt kaum jemand.

 

Ich stehe aber auch weiter sehr gerne als Tester zur Verfügung. ?

 

Edited by Jens Eits
Link to comment

Hallo und nochmal Feedback dazu:

Ich habe das jetzt alles nochmal auf einem Desktop nachgebildet, der in einem anderen Raum steht. Nahezu gleiche Umgebung wie bei meinem Laptop, mit dem ich die ersten Versuche gemacht habe bzw. auf dem ich normalerweise den DVBViewer im Einsatz habe. Einziger Unterschied ist, dass der Laptop per WLAN im Heimnetzwerk unterwegs ist und der Desktop per LAN. Der PC hat auch mehr Arbeitsspeicher.

 

Ich habe zunächst auf die neueste Version geupdatet, da auf dem PC ewig lange nicht genutzt und den Patch eingespielt. Der Ton ist sofort da und läuft einwandfrei, im Gegensatz zu meinen Erfahrungen auf dem Laptop. Es funktioniert also soweit auch bei blue TV. Beim Zattoo-Account hatte es ja von Anfang an gleich funktioniert. Einzig, manche Streams laufen nicht stabil bei blue TV, stocken immer mal. Aber das passiert auf dem Weg über TVHeadend auch.

 

Für die Einbindung in die Favoritenliste der VU+ (upnp/channelstream) wird die jeweilige Channel-ID benötigt. Die errechnet sich wohl aus den Stream-Eigenschaften? Sie lässt sich im Senderlisten-Editor von jedem Sender einzeln in die Zwischenablage kopieren. Ich habe jedoch nicht herausfinden können, dass sie an irgend einer Stelle gespeichert ist. In der ChannelsURL.ini steht eine ID vor jedem Stream, auch 19-stellig. Wie die Channel-ID, die ich jedoch nicht finden konnte. Gibt es eine Möglichkeit, die Channel-ID für mehrere ausgewählte (oder alle) Sender in einer Datei auszugeben, um sich diese nicht einzeln holen zu müssen?

Link to comment
2 hours ago, Jens Eits said:

Gibt es eine Möglichkeit, die Channel-ID für mehrere ausgewählte (oder alle) Sender in einer Datei auszugeben, um sich diese nicht einzeln holen zu müssen?

 

Die betreffenden Sender im Senderlisten-Editor zu Favoriten machen (am einfachsten mit Drag & Drop in den Favoriten-Editor, auch ordnerweise oder mit Mehrfachauswahl), die geänderte Favoritenliste speichern, dann die favourites.xml aus dem Konfigurationsordner mit einem Texteditor öffnen.

 

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...