Closed vespino closed 3 years ago
Ik weet het niet zeker, maar volgens mij is dit "normaal" bij deze huidige API. Voor het afspelen/downloaden zul je de aparte audio- en videostream dus zelf moeten combineren.
Er valt echter niet veel aan te doen, ben ik bang. De HLS manifest is vergelijkbaar met die van https://www.npostart.nl/nos-journaal/28-02-2017/POW_03375558 bijvoorbeeld, maar waar de NPO videostreams in dit geval wél audio hebben hebben de RTL videostreams dat niet. En uiteraard kom je daar pas achter bij het openen van de stream met ffmpeg
of een mediaspeler.
Ik heb nog steeds het plan om een wiki aan te maken met o.a. ook voorbeelden hier van, maar ja... weinig tijd.
Vorige week zat de audio er anders nog gewoon bij 🥴
Heb je een programma- of video-url?
Weet je dat zeker? hls-7
, de 720p variant van deze video heeft géén audio.
Ok, zal eerlijk toegeven, vorige week daar ben ik niet zeker van, maar destijds kon ik (bijv) Lego Masters gewoon binnen halen met geluid. Ik weet niet vanaf wanneer de streams geen geluid meer hebben, misschien is het alweer even geleden dat ik RTL heb gedownload, maar 100% zeker dat het voorheen altijd als 1 pakketje binnen te halen viel.
All you need is love kerstspecial ben ik zeker van dat dit mét geluid was.
Dan is https://github.com/Reino17/xivid/commit/3af7f279d6285625c9d978cdac9ef10ea59634c6 van 24 januari daar de reden voor. De "All you need is love kerstspecial" heb je dan nog binnen gehaald met de oude API.
Het probleem ligt in eerste instantie bij RTL. Het HLS-manifest suggereert dat de videostreams audio hebben, terwijl dat dus in werkelijkheid niet zo is. Wil je een video downloaden, dan zul je dus de video- en audiostream moeten "muxen"/combineren.
Ik heb nog niet gekeken, maar de audiostream is te herleiden a.d.h.v. de url? Vervolgens kan ffmpeg het vast “muxen” schat ik?
Gevonden, ik kan gewoon " -f hls-2 " meegeven, maar best vreemd dat de " hls-7 " het volgende aangeeft "hls-7 m3u8[h264+aac]", dan zou ik toch verwachten dat er geluid (aac?) bij zit?
Zo, mijn script aangepast zodat deze automatisch ook de audio stream download als die er is en meteen merged. En doooorrrr!
ik kan gewoon " -f hls-2 " meegeven
Ik zie dat de audiostream dubbel wordt gedetecteerd (hls-1
en hls-2
). Ik zal kijken of dat te fixen is.
maar best vreemd dat de " hls-7 " het volgende aangeeft "hls-7 m3u8[h264+aac]", dan zou ik toch verwachten dat er geluid (aac?) bij zit?
Dat is 't 'm dus juist. Het HLS-manifest suggereert van wel (waar ik de informatie uit haal), maar is in werkelijkheid dus niet zo.
Voor de videostream met de hoogste resolutie én de audiostream kun je -f hls-#+hls-1
opgeven. Vervolgens met ffmpeg
:
ffmpeg -i "<videostream-url>" -i "<audiostream-url>" -c copy "output.{mp4/mkv}"
Je kunt ook het HLS-manifest (hls-0
) pakken en de desbetreffende "Program" pakken:
ffmpeg -i "<manifest-url>" -map 0:p:4 -c copy "output.{mp4/mkv}"
Oh cool, het kan ook met één commando. Zal eens kijken of ik dat kan verwerken in m’n download script.
Misschien dat RTL iets heeft aangepast, maar het lijkt erop dat alle streams zonder geluid zijn. SBS heeft wel gewoon geluid.