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