RTSP -поток на WPF с использованием GSTREAMERC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 RTSP -поток на WPF с использованием GSTREAMER

Сообщение Anonymous »

Я пытаюсь захватить поток из энкодера оси на приложении WPF, используя Gstreamer SDK, поток всегда начинается в новом окне, но не в элементе, который я создал в самом WPF.
Когда я добавляю конкретный элемент, вообще ничего не появляется.
Это код, который я использую.public partial class MainWindow : Window
{
private PictureBox videoPanel;
private Process gstreamerProcess;

public MainWindow()
{
InitializeComponent();
videoPanel = new PictureBox
{
Dock = DockStyle.Fill,
BackColor = System.Drawing.Color.Black
};
windowsFormsHost.Child = videoPanel;
Loaded += MainWindow_Loaded;
}

private async void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
var handle = videoPanel.Handle;
await System.Threading.Tasks.Task.Delay(100);
StartGStreamer(handle);
}

private void StartGStreamer(IntPtr windowHandle)
{
try
{
string gstPath = @"C:\gstreamer\1.0\msvc_x86_64\bin\gst-launch-1.0.exe";
string rtspUrl = "rtsp://username:password@192.168.1.11/axis-media/media.amp";

string pipeline = $"rtspsrc location={rtspUrl} latency=0 ! decodebin ! videoconvert ! d3d11videosink";

ProcessStartInfo psi = new ProcessStartInfo
{
FileName = gstPath,
Arguments = pipeline,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardError = true,
RedirectStandardOutput = true
};

gstreamerProcess = Process.Start(psi);

gstreamerProcess.ErrorDataReceived += (s, e) =>
{
if (!string.IsNullOrEmpty(e.Data))
Console.WriteLine($"GStreamer Error: {e.Data}");
};
gstreamerProcess.BeginErrorReadLine();
}
catch (Exception ex)
{
System.Windows.MessageBox.Show($"Error starting GStreamer: {ex.Message}");
}
}

protected override void OnClosed(EventArgs e)
{
gstreamerProcess?.Kill();
base.OnClosed(e);
}
}
< /code>
В этом коде поток запускает новое окно,
, но когда я добавляю это ->
Window -handle = {windowhandle.toint64 ()} в конце этого утверждения ->
String Pipeline = $ "Rtspsrc location = {rtspurl} latency = 0! Decodebin! Videoconvert! /> Ничего не появляется.
Кто -нибудь может помочь мне с этим? Я пытался интегрировать его с OpenCV, но та же проблема.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -gstreamer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Gstreamer: освободить ОЗУ при закрытии и перезагрузить поток rtsp
    Anonymous » » в форуме C++
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • GSTREAMER - RTSP -поток в трубопровод MJPEG
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Libvlcsharp: ускорить загрузку rtsp/выбрать декодер rtsp
    Anonymous » » в форуме C#
    0 Ответы
    60 Просмотры
    Последнее сообщение Anonymous
  • Плеер Gstreamer RTSP 1080p на Raspberry Pi 4
    Anonymous » » в форуме Linux
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Преобразование RTSP в HLS с помощью GStreamer Pipeline. Почему не работает? [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»