Page 1 of 1

HLS streaming : 0 tracks, no resolution, no playback

Posted: 08 Jan 2016 20:13
by SteUK
Hi all,

I am part way through writing a plug-in based around the excellent libvlc. The plugin renders video frames to an off-screen openGL buffer for use externally. I have managed to get local video files working as desired (for a first pass at least), but have hit trouble streaming in videos. I am using the apple HLS test video: http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8

Here are brief snippets of my approach:

- Calling 'libvlc_new' with: --ignore-config --no-video-title-show --http-caching=5000
- Using 'libvlc_media_new_location' passing in the URL to the stream
- Using 'libvlc_media_event_manager' to catch 'libvlc_MediaParsedChanged'
- Parsing the media with 'libvlc_media_parse_with_options' and the flag 'libvlc_media_parse_network'
- When 'libvlc_MediaParsedChanged' has calledback I am using 'libvlc_media_tracks_get' to get the resolution of the video...in order to create my openGL buffers.

The last point, number of tracks is always zero. If I keep polling I eventually get 8 subitems back in the media object.

My hunch is I am not enabling the adaptative module or similar...or maybe none of this is possible currently?!

Any help greatly appreciated! Apologies if I have not provided enough info...

Thanks,
Ste

Re: HLS streaming : 0 tracks, no resolution, no playback

Posted: 11 Jan 2016 15:35
by SteUK
A bit more info in case anyone can help my troubles...

My program log spits out...

looking for demux module matching "any": 63 candidates
MOD validation failed (ext=m3u8)
found valid M3U playlist
using demux module "playlist"

Whilst the same part from the vlc GUI (roughly) gives...

looking for demux module matching "any": 68 candidates
adaptative demux debug: opening playlist file (qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8)
using demux module "adaptative"

So mine has less demux candidates, guessing one of those is the adaptative. Any advice as to why the difference?

Thanks,
Ste

Re: HLS streaming : 0 tracks, no resolution, no playback

Posted: 11 Jan 2016 16:46
by SteUK
Bit more info from the logging:

VLC media player - 3.0.0-git-20151220-0402 Vetinari
Copyright © 1996-2015 the VideoLAN team
revision 2.2.0-git-5734-g3a660dc
configured with ../extras/package/win32/../../../configure '--enable-update-check' '--enable-lua' '--enable-faad' '--enable-flac' '--enable-theora' '--enable-twolame' '--enable-quicktime' '--enable-avcodec' '--enable-merge-ffmpeg' '--enable-dca' '--enable-mpc' '--enable-libass' '--enable-x264' '--enable-schroedinger' '--enable-realrtsp' '--enable-live555' '--enable-dvdread' '--enable-shout' '--enable-goom' '--enable-caca' '--disable-sdl' '--enable-qt' '--enable-skins2' '--enable-sse' '--enable-mmx' '--enable-libcddb' '--enable-zvbi' '--disable-telx' '--enable-nls' '--host=x86_64-w64-mingw32' '--enable-debug' 'host_alias=x86_64-w64-mingw32'

Re: HLS streaming : 0 tracks, no resolution, no playback

Posted: 11 Jan 2016 18:02
by SteUK
Further digging...

Using the --list flag for both vlc.exe and my code (passed in to the function libvlc_new(...)):

vlc.exe gives (amongst many others)...
aiff AIFF demuxer
adaptative Unified adaptative streaming for DASH/HLS
win_msg Windows messages interface

Whilst libvlc spits out...
aiff AIFF demuxer
win_msg Windows messages interface

I also notice that:
mkv Matroska stream demuxer
.. is missing in my libvlc generated list. This is another demux plug-in dll (I noticed it missing because
it is the second largest sized file behind the adaptative dll).

Re: HLS streaming : 0 tracks, no resolution, no playback

Posted: 11 Jan 2016 20:39
by SteUK
Thanks to 'j-b' on the IRC channel, the solution to my troubles was to simply load the 'libgcc*.dll' found along side 'libvlc.dll. This is due to the following demux plug-ins being c++: adaptative, mkv, sid, mod, gme

Hope this helps someone in the future!

Thanks again j-b :)

Re: HLS streaming : 0 tracks, no resolution, no playback

Posted: 28 Jun 2016 09:37
by Jean-Baptiste Kempf
No pb :)