播放视频从UDP/RTSP使用MediaElement

本文关键字:RTSP 使用 MediaElement UDP 视频 播放 | 更新日期: 2023-09-27 18:02:45

是否可以使用WPF的MediaElement控件播放来自UDP/RTSP的视频流?在测试期间,我尝试将包含UDP流的URI传递给MediaElement播放器,但是当我启动应用程序时,媒体播放器是空白的,好像没有媒体源一样。下面是我的示例代码:

MainWindow.xaml.cs:

public partial class MainWindow: Window 
{
    public MainWindow() 
    {
        InitializeComponent();
        VideoMediaElement.Source = new Uri("udp:''''@12.3.4.567:890");
        VideoMediaElement.Play();
    }
}

MainWindow.xaml:

<Window x:Class="MyApplication.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="300" Width="300">
<Grid>
    <MediaElement Margin="5,5,5,5" Grid.Row="1" x:Name="VideoMediaElement" LoadedBehavior="Manual" />
</Grid>

我在这里遗漏了什么明显的东西吗?我用存储在我的文件系统上的视频测试了这个设置,它没有任何问题——只是流媒体不想工作。

如果使用MediaElement不可能做到这一点,我愿意听取我可以使用的控件的建议。然而,我需要一个纯粹的WPF控件,不依赖于任何WinForms互操作。欢迎提出任何建议。

更新:在为"medifailed"事件创建处理程序后,我能够收到此错误:"媒体文件下载失败",内部异常System.Runtime.InteropServices.COMException, HResult 0xC00D0FEA。我引用了这个:MediaPlayer不能播放文件名没有扩展名,并试图对注册表进行一些更改,但他们似乎没有解决这个问题。再一次,任何建议都是感激的。我将继续更新这个线程,因为我得到更多的信息。

播放视频从UDP/RTSP使用MediaElement

参见基于FFmpeg的MediaElement的几乎即时替代品FFME。

经过大量的研究,我想做的事情似乎是不可能的。WPF MediaElement控件(和Windows Media Player)似乎支持通过网络播放视频,但不支持流媒体。请参阅MSDN上的以下线程:https://social.msdn.microsoft.com/Forums/vstudio/en-US/e90b7e73-62b2-40b2-a725-4b60e02d65a1/play-video-stream-in-wpf?forum=wpf

我仍然在寻找一个WPF控件,将播放视频从一个流,但我还没有找到任何东西。

老问题,但最近发现ffmediaelement (Install-Package FFME.Windows)对MISB流工作得很好。到目前为止只使用了一天,唯一的问题是,如果流媒体源循环回到视频文件的开始,需要重置控件。需要单独下载FFMPEG dll。

https://github.com/unosquare/ffmediaelement