捕获数字电视并将其流式传输到本地网络

时间:2018-10-18 20:04:58

标签: c# video-streaming rtsp directshow.net

我需要捕获数字电视信号并在本地网络上流式传输电视频道(通过Http,RTSP或类似的任何协议)。我正在使用CodeTV查找电视频道,对其进行捕获和解码。该项目使用DirectShow.Net来做到这一点。我发现Vlc.DotNet对在本地网络上传输数据很有帮助。问题是,我不熟悉Directshow,也无法弄清楚如何获取视频流并将其提供给Vlc库。 我试图用记录视频流的代码替换此代码,但“ bs”保持为空。

IStream bs = this.currentGraphBuilder as IStream;
var currentDirectory = 
Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
currentDirectory = Path.Combine(currentDirectory, "libvlc");
var libDirectory = new DirectoryInfo(Path.Combine(currentDirectory, 
IntPtr.Size == 4 ? "win-x86" : "win-x64"));
using (Vlc.DotNet.Core.VlcMediaPlayer mediaPlayer = new 
Vlc.DotNet.Core.VlcMediaPlayer(libDirectory))
{
    var mediaOptions = new[]
    {
        ":sout=#rtp{sdp=rtsp://127.0.0.1:554/}",
        ":sout-keep"
    };
    mediaPlayer.SetMedia(bs as Stream, mediaOptions);
    mediaPlayer.Play();
}

我不知道是否需要创建一个过滤器并将其添加到图形中,或者有一种更简单的方法。

0 个答案:

没有答案