簡體   English   中英

如何使用 libvlcsharp(c# 或 vb.net)從數據 stream 播放視頻

[英]How to play video from a data stream using libvlcsharp (c# or vb.net)

我在 vb.net (winForms) 中有一個應用程序,我想用視頻和音頻 PID 播放有效的 TS。 如果我使用來自應用程序本身的 TCP/UDP 協議 stream 它工作正常,但我想在不使用網絡 stream 的情況下做到這一點。

我看到這可以使用 StreamMediaInput 進行,但我不知道該怎么做。

我有這個:

Private Sub WriteStream(ByVal Data() As Byte, ByVal len As Integer)
 'Data() array is the video TS (MPEG-2) (188 bytes len)
 vlc_memorystream.Write(Data, 0, len)
End Sub

將 stream 到 TCP 到 libvlcsharp 是可以的,我怎么能直接將 Data() 數組傳遞給 libvlcsharp?

謝謝你。

https://github.com/videolan/libvlcsharp

編輯:

我可以看到 stream 把這條線放在子里面:

vlc_memorystream.Write(Data, 0, len)

問題是緩沖區。 它播放好幾秒鍾,然后停止播放。 我該如何處理?

如此處所述: https://code.videolan.org/videolan/LibVLCSharp/-/issues/526#note_294698 ,MemoryStream 不會這樣做,因為 libvlc 讀取數據的速度比它們到達的速度快,並假設 ZF7B44CFAFD5C52223D5498196C8A2E7B 已完成。

您需要實現一個 Stream 來阻止 Read() 調用,直到數據可用(或使用現有的 Stream 實現),或者為此使用您自己的 MediaInput。

我在這里實現了這樣的媒體輸入: https://github.com/jeremyVignelles/libvlcsharp-nonfree-samples

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM