项目中遇到需要用html页面播放视频,客户用的大华的视频监控,由于也是第一次接触,于是就开始百度查询了一堆,都需要在浏览器装插件,最后采用VCL媒体播放器进行RTSP流转换。
一、大华视频流地址
主码流:rtsp://admin:admin123456@192.168.0.121:554/cam/realmonitor?channel=1&subtype=0
URL组成说明:
username: 用户名;
password: 密码;
ip: 网络摄像机IP地址;
port: 端口号,默认554;
codectype:有h264/h265/mjpeg;
channel: 通道号。
subtype: 码流类型,主码流:0,子码流:1。
二、VLC媒体播放器转流操作
下拉框选项:流。
点击添加
点击流
三、VLC后台命令操作
项目通过前端通过AJAX调用后台VLC转流指令,返回Http地址与端口号赋给Video标签src属性。
这里贴出后台转流测试方法,指令可能会有所改变,感兴趣的朋友可以尝试一下,共同学习,但是开的多的话还是比较占用服务器CPU资源!
1 using System; 2 using System.Collections.Generic; 3 using System.Diagnostics; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace ConsoleApplication 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 Process process = new Process(); //创建进程对象 15 process.StartInfo.FileName = "cmd.exe"; //要执行的程序名 16 process.StartInfo.UseShellExecute = false; ////不使用系统外壳程序启动进程 17 process.StartInfo.CreateNoWindow = true; //不显示dos程序窗口 18 process.StartInfo.RedirectStandardInput = true; 19 process.StartInfo.RedirectStandardOutput = true; 20 process.StartInfo.RedirectStandardError = true; 21 process.StartInfo.CreateNoWindow = true;//不显示程序窗口 22 process.Start(); //进程开始 23 process.StandardInput.WriteLine("d:"); 24 process.StandardInput.WriteLine("cd VLC"); 25 string test = @"vlc -I dummy -vvv rtsp://账号:密码@网络摄像机IP:554/cam/realmonitor?channel=1&subtype=0 --sout=#transcode{vcodec=theo,vb=800,acodec=vorb,ab=128,channels=2,samplerate=44100}:http{access=http,mux=ogg,dst=172.16.177.21:8803} --sout-all --sout-keep"; 26 process.StandardInput.WriteLine(test); 27 } 28 29 30 } 31 }