Recently I have used LibVLCsharp to put a Mediaplayer on a simple c# application to stream video URL's.
As 'libvlc' I used a downloaded copy (minus the application exe's and skins) I already had installed on my system - in this case a recent 3.0.7 nightly.
Streaming an RTSP camera and the big buck bunny example (https://www.w3schools.com/html/mov_bbb.mp4) works great.
However some video's don't work - in particular a YouTube video or live stream.
The odd thing is, in the standalone VLC player it works but using the exact same software as library it doesn't. So I wonder what the difference could be ?
Example trying to play: https://www.youtube.com/watch?v=foyufD52aog
Works in standalone player. Doesn't work in the c# app.
Where the VLC player at some point logs :
Code: Select all
main debug: `https://www.youtube.com/watch?v=foyufD52aog' successfully opened
Code: Select all
http debug: in DATA (0x00) frame of zu bytes, flags 0x3ff9, stream 0
Call Stack:
at MyVideoStreamer.VideoStreamer._libVLC_Log(Object sender, LogEventArgs e) in C:\Users\nocoffee\Desktop\ViewApps\VideoStreamer\VideoStreamer.xaml.cs:line 125
at LibVLCSharp.Shared.LibVLC.<>c__DisplayClass41_0.<OnLogInternal>b__0()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
at System.Threading.Tasks.Task.ExecutionContextCallback(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
http debug: in DATA (0x00) frame of zu bytes, flags 0x4000, stream 0
Call Stack:
at MyVideoStreamer.VideoStreamer._libVLC_Log(Object sender, LogEventArgs e) in C:\Users\nocoffee\Desktop\ViewApps\VideoStreamer\VideoStreamer.xaml.cs:line 125
at LibVLCSharp.Shared.LibVLC.<>c__DisplayClass41_0.<OnLogInternal>b__0()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
at System.Threading.Tasks.Task.ExecutionContextCallback(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Any idea what the difference could be? Thanks,