Я пытаюсь захватить поток из энкодера оси на приложении 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
RTSP -поток на WPF с использованием GSTREAMER ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Преобразование RTSP в HLS с помощью GStreamer Pipeline. Почему не работает? [закрыто]
Anonymous » » в форуме C# - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-