Jump to content

Unterstützung für HLS-Stream mit separatem Video- und Audio-Stream


Constantin

Recommended Posts

Hallo zusammen,

 

folgenden Stream würde ich gerne als HLS Stream einrichten:

https://live-w.lwc.vrtcdn.be/groupc/live/d05012c2-6a5d-49ff-a711-79b32684615b/live.isml/.m3u8/playlist.m3u8

(von der Seite https://www.vrt.be/vrtnu/kanalen/een/, falls das mit dem Hash IP-gebunden ist)

 

Wenn ich das richtig interpretiere, dann gibt es hier einen Audio-Stream für alle Video-Varianten und dann die verschiedenen Video-Auflösungen separat. Damit kann der DVBViewer scheinbar nicht umgehen (es gibt ein Bild, aber Audio ist unconnected) - gibt es eine Chance, dass das in Zukunft unterstützt wird (@Griga)?

 

So schaut die gesamte m3u8 aus:

#EXTM3U
#EXT-X-VERSION:4
## Created with Unified Streaming Platform(version=1.7.28)

# AUDIO groups
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-aacl-96",NAME="English",LANGUAGE="en",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="live-audio_track=96000.m3u8"

# variants
#EXT-X-STREAM-INF:BANDWIDTH=276000,AVERAGE-BANDWIDTH=251000,CODECS="mp4a.40.2,avc1.42C01E",RESOLUTION=416x234,FRAME-RATE=25,AUDIO="audio-aacl-96",CLOSED-CAPTIONS=NONE
live-video=145000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=533000,AVERAGE-BANDWIDTH=484000,CODECS="mp4a.40.2,avc1.42C01E",RESOLUTION=480x270,FRAME-RATE=25,AUDIO="audio-aacl-96",CLOSED-CAPTIONS=NONE
live-video=365000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=958000,AVERAGE-BANDWIDTH=871000,CODECS="mp4a.40.2,avc1.42C01E",RESOLUTION=640x360,FRAME-RATE=25,AUDIO="audio-aacl-96",CLOSED-CAPTIONS=NONE
live-video=730000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1390000,AVERAGE-BANDWIDTH=1263000,CODECS="mp4a.40.2,avc1.42C01F",RESOLUTION=768x432,FRAME-RATE=25,AUDIO="audio-aacl-96",CLOSED-CAPTIONS=NONE
live-video=1100000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2439000,AVERAGE-BANDWIDTH=2217000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=960x540,FRAME-RATE=25,AUDIO="audio-aacl-96",CLOSED-CAPTIONS=NONE
live-video=2000000.m3u8

# keyframes
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=22000,CODECS="avc1.42C01E",RESOLUTION=416x234,URI="keyframes/live-video=145000.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=54000,CODECS="avc1.42C01E",RESOLUTION=480x270,URI="keyframes/live-video=365000.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=107000,CODECS="avc1.42C01E",RESOLUTION=640x360,URI="keyframes/live-video=730000.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=161000,CODECS="avc1.42C01F",RESOLUTION=768x432,URI="keyframes/live-video=1100000.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=292000,CODECS="avc1.4D401F",RESOLUTION=960x540,URI="keyframes/live-video=2000000.m3u8"

Viele Grüße

Constantin

Edited by Constantin
Link to comment

Ich schaue bei Gelegenheit mal, was sich da machen lässt. Der DVBViewer kann jedenfalls die Audio-URL separat abspielen:

 

https://live-w.lwc.vrtcdn.be/groupc/live/d05012c2-6a5d-49ff-a711-79b32684615b/live.isml/.m3u8/live-audio_track=96000.m3u8

 

Das ist ein AAC Elementary Stream (also ohne Verpackung in einen TS).

 

Allerdings sieht der hexadezimale Teil der URL nach begrenzter Gültigkeit aus. In dem Fall wird die URL nicht mehr lange funktionieren. Und Diskussionen über Maßnahmen zur Umgehung solcher Mechanismen sind aufgrund rechtlicher Gegebenheiten hier im Forum nicht angebracht, um darauf noch mal vorsichtshalber hinzuweisen.

Link to comment

Das Problem ist hier weniger, Video und Audio zusammen abzuspielen, sondern sie synchron wiederzugeben.

 

Der Browser Chrome mit dem "Native HLS Playback" Add-On kann das unter Windows, wenn ich die URL aus dem ersten Post in der Adresszeile eingebe. Der VLC scheitert, die Wiedergabe bleibt hängen. Ebenso wie der LAV Sourcefilter.

 

Hast du Windows 10? Falls ja, wie sieht das mit Edge aus? Der Browser beherrscht nativ HLS.

 

Link to comment

Ich hab's mir mal genauer angeschaut und festgestellt, dass sich das nicht so einfach im DVBViewer realisieren lässt. Um z.B. den Kram aufnehmen zu können, braucht er einen richtigen Transportstream mit Video und Audio. Was er bekommt, ist jedoch ein Transportstream nur mit Video plus einen separaten reinen Audio (Elementary) Stream.

 

Letzteren kann der DVBViewer zwar in einen Transportstream umsetzen, aber das Resultat müsste noch auf unterster Ebene mit dem Video-Transportstream gemuxt (also praktisch reißverschlussartig zusammengeführt) werden. Dafür gibt es nocht nichts im Code, und das ist auch alles andere als trivial ;) Die genannten Browser haben es viel einfacher, da sie den Kram nur wiedergeben brauchen.

 

Kurzfristig ist das also leider nicht drin.

 

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