播放视频从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不能播放文件名没有扩展名,并试图对注册表进行一些更改,但他们似乎没有解决这个问题。再一次,任何建议都是感激的。我将继续更新这个线程,因为我得到更多的信息。
参见基于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