最近公司需要对接大华视频的webapi,获取的实时视频是rtsp流的,最后经过不断尝试和查询博客最终还是发现使用VLC进行播放比较好

一、nuget引用VLC资源包

打开项目的nuget进行对于VLC的引用,成功后显示的是这四个包

二、设计视频显示界面

整体主要显示的是 视频,然后最下方鼠标移入视频后会显示一些操作按钮和进度条,最终样式如下图所示:

按钮使用的是icon,进度条使用的是Slider,都是使用的一个开源框架HandyControl 里边的样式,nuget里边就可以直接饮用,文档:https://gitee.com/handyorg/HandyControl  还有https://handyorg.gitee.io/handycontrol/

三、使用VLC自带控件播放rtsp视频流

1、下载VLC播放器并提取其文件

在使用VLC之前 我们需要安装一下VLC media player 下载地址:https://vlc-media-player.en.softonic.com/

下载安装后我们打开安装路径,提取其路径中的plugins文件夹和libvlc.dll、libvlccore.dll,并将这三个放入至我们项目的debug中同一个文件夹内,取名文件夹为 LibVlc(文件夹名字可以随意,但是代码中要替换掉)

2、在程序中加载资源,并且使用VLC视频播放控件

(1)、前台直接使用的方式:

引入VLC的命名空间

xmlns:wpf="clr-namespace:Vlc.DotNet.Wpf;assembly=Vlc.DotNet.Wpf"

设计中使用

<ContentControl x:Name="contentCtrl" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"><wpf:VlcControl/></ContentControl>

(2)、后台代码中使用

VlcControl vlcVideo = null;private void InitVLC(){if (this.vlcVideo?.SourceProvider?.MediaPlayer != null){this.vlcVideo.SourceProvider.MediaPlayer.PositionChanged -= MediaPlayer_PositionChanged;this.vlcVideo.SourceProvider.MediaPlayer.LengthChanged -= MediaPlayer_LengthChanged;}this.vlcVideo = new VlcControl();this.contentCtrl.Content = this.vlcVideo;var libDirectory = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory() + "\\LibVlc");this.vlcVideo.SourceProvider.CreatePlayer(libDirectory);//创建视频播放器this.vlcVideo.SourceProvider.MediaPlayer.PositionChanged += MediaPlayer_PositionChanged;//视频的定位移动事件this.vlcVideo.SourceProvider.MediaPlayer.LengthChanged += MediaPlayer_LengthChanged;//播放视频源的视频长度}

(3)、注意事项

两种方法都需要给VLCVideo加载资源文件夹,也就是咱们 三.1 中的那个文件夹,代码就是:

var libDirectory = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory() + "\\LibVlc");this.vlcVideo.SourceProvider.CreatePlayer(libDirectory);//创建视频播放器

播放:

string videourl=urlobj["uri"];
this.vlcVideo.SourceProvider.MediaPlayer.Play(new Uri(videourl));

暂停:

vlcVideo.SourceProvider.MediaPlayer.Pause();

四、源代码地址

https://tburl.in/TRt4PYfR

如果帮助了你请点个赞

WPF 使用VLC播放rtsp网络视频流相关推荐

  1. 8K播放网络全终端播放器H5播放器网页直播/点播播放器EasyPlayer和vlc播放RTSP流地址不兼容问题排查解决

    背景介绍 EasyPlayer实现了对遵循标准流媒体码流协议进行实时播放以及码流录制,在流的播放速度以及画质的解码显示上均做了大量深度的优化.支持Windows(支持多窗口.包含ActiveX,npA ...

  2. PHP如何调取vlc播放rtsp,H5+VLC播放RTSP视频流

    最新项目涉及到摄像头,这篇文章记录一下在VUE中播放RTSP视频流. 这篇文章主要介绍使用VLC插件播放RTSP视频流,目前支持的浏览器有 360浏览器.2345浏览器,可用于一些对播放器要求不高的项 ...

  3. android vlc 画面不动,vlc播放rtsp over tcp画面突然卡住问题

    继完成rtmp服务器开发后,最近也写完了rtsp服务器,可以将国标ps流以及其他格式协议码流转rtsp协议输出.中间开发过程用了许多播放器测试,最常用的就是vlc.使用vlc测试过程,遇到了许多问题. ...

  4. Wpf开发VLC播放器(万能播放器)

    一.在VLC官网下载最新的VLC播放器,然后安装,安装后在安装文件目录中分别把文件VideoLAN\VLC\和VideoLAN\VLC\plugins\拷贝到项目中. \VLC文件夹中包括\plugi ...

  5. pyqt+vlc 播放rtsp/rtmp地址并嵌入任意frame中

    先上效果图: 代码: import os, platform# 设置VLC库路径,需在import vlc之前 os.environ['PYTHON_VLC_MODULE_PATH'] = " ...

  6. vlc播放海康威视摄像头rtsp rtmp视频教程

    前言 目前做的项目,需要局域网下海康摄像头web端网页上实时播放视频数据.本次项目使用的是海康威视的摄像头进行实时监控. 目的:使用vlc播放rtsp及rtmp视频流. 软件版本:vlc3.0.11版 ...

  7. android vlc rtsp卡顿,VLC播放器 RTSP 卡顿解决

    之前写过一篇关于在Linux平台上编译android平台上VLC播放器源代码的文章,vlc这款播放器非常优秀而且是开源的,它的核心是开源视频编解码库ffmpeg.而且这款播放器还支持RTSP协议,这个 ...

  8. Android Vlc播放器加载rtsp及http地址视频

    该文章借鉴于:记性差的程序猿发布的<Android使用VLC播放视频和直播流> CSDN地址:Android使用VLC播放视频和直播流_记性差的程序猿的博客-CSDN博客_android ...

  9. vlc播放网络流延时参数设置

    vlc-android播放网络视频流时网络延时参数设置: options.add(":file-caching=1500"); options.add(":network ...

最新文章

  1. 用 .NET Memory Profiler 跟踪.net 应用内存使用情况--基本应用篇(转载)
  2. 使用VS2010编译MongoDB C++驱动详解
  3. hive 前7天标准差_为啥科目三考试前只让练7天?教练实话实说:这是为你们好...
  4. 简单实用读取字符串信息的c++类
  5. beam search(束搜索)与 vliterbi(维特比算法);语音识别算法vad、asr、tts
  6. 怎么进入华为路由器终端管理系统
  7. 3D刷脸支付推动新零售行业发展
  8. 蕴含深刻道理的经典语录
  9. c语言程序设计选修让我学到的东西,电子课程设计心得体会
  10. Fuchsia Friday:一切皆实体
  11. 发布功能完成02《ivx低代码签到系统制作》
  12. MySQL优化之——函数
  13. 干货分享|数据可视化报表制作技巧
  14. js+css+html 抽奖页面
  15. Android 9.0以上联网报错:CLEARTEXT communication to xxx.xxx.xxx.xx not permitted by network security policy
  16. Hutool操作和监听文件
  17. 常用的一些子域名,旁站查询
  18. STM32-24位AD7799驱动之手册代码详解,支持模拟SPI和硬件SPI
  19. frontpage动态html效果,FrontPage基础教程特效按钮的制作
  20. 10.20-smbus

热门文章

  1. sklearn中的metrics.roc_auc_score评价指标
  2. 在网上看看非诚勿扰,要不要报名
  3. 由浅入深玩转华为WLAN—-4 DHCP Option 43配置方法
  4. html 图片比例 js,js自动等比例设置图片尺寸大小
  5. Python连接MySQL数据库部分问题阐述Connection to @localhost failed. [08001] Could not create connection to databa
  6. ChatGPT实现旅行安排
  7. C++:求1000以内能被2,7,11同时整除的所有整数
  8. nvm切换node nvm use 17.2.0 exit status 5: �ܾ����ʡ� exit status 1: ���ļ��Ѵ���ʱ���޷��������ļ���
  9. fish shell使用及安装入门指南
  10. 安卓 GPS定位程序APP 闪退问题