Захват цифрового телевидения и потоковая передача по локальной сети - PullRequest
0 голосов
/ 18 октября 2018

Мне нужно захватывать сигналы цифрового телевидения и транслировать телеканалы в локальной сети (через 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();
}

Я не знаю, нужно ли мне создать фильтр и добавить его в график или тамэто более простой способ.

...