C# 实时流转换为m3u8

ops/2024/11/15 6:41:24/

主要通过FFmpeg 执行命令进行转换
FFmpeg 下载地址

命令行

ffmpeg -i "rtsp://your_rtsp_stream_address" -codec: copy -start_number 0 -hls_time 10 -hls_list_size 12 -f hls "output.m3u8"

start_number 设置播放列表中最先播放的索引号,默认 0
hls_time 10 :切片长度 单位秒 10秒
hls_list_size size 设置播放列表中字段最大数。如果为0,则包含所有分段。默认为5
-f hls:输出格式为HLS
output.m3u8 输出文件名,可以完整路径

通过C# 执行命令行
我是winfrom 所有把ffmpeg 放到了执行目录在这里插入图片描述

也可以把ffmpeg 注册到环境变量中
1、右击“计算机”或“此电脑”,选择“属性”。
2、点击“高级系统设置”,然后点击“环境变量”。
3、在“系统变量”部分,找到并选中“Path”变量,点击“编辑”。
4、在“变量值”字段末尾添加 FFmpeg 的 bin 目录路径(例如 C:\ffmpeg\bin),用分号分隔开。
5、点击“确定”保存更改,按 Win + R,输入 cmd,然后按 Enter 打开命令提示符。输入 ffmpeg -version 并按 Enter。如果安装成功,会显示 FFmpeg 的版本信息
在这里插入图片描述

C# 执行命令行代码

		/// <summary>/// 执行命令/// </summary>/// <param name="command"></param>/// <returns></returns>
private void ConvertVideo(string command){using (var process = new Process()){//这里如果写入了环境变量就不用写ffmpeg的完整路径process.StartInfo.FileName = Path.Combine(System.Environment.CurrentDirectory, "ffmpeg.exe"); // 指定命令行解释器;process.StartInfo.Arguments = command;process.StartInfo.UseShellExecute = false;process.StartInfo.RedirectStandardError = true;process.StartInfo.CreateNoWindow = true;process.ErrorDataReceived += Process_OutputDataReceived;process.EnableRaisingEvents = true;process.Exited += Process_Exited;try{process.Start();process.BeginErrorReadLine();}catch (Exception ex){throw new Exception("FFmpeg启动失败:" + ex.Message);}}}/// <summary>/// 进程被结束/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Process_Exited(object sender, EventArgs e){}/// <summary>/// 显示输出/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Process_OutputDataReceived(object sender, DataReceivedEventArgs e){if (!string.IsNullOrEmpty(e.Data)){AddText(e.Data);//outputTextBox.AppendText(e.Data + Environment.NewLine);}}private void AddText(string Data){// 更新UI线程中的控件,例如文本框显示输出outputTextBox.Invoke((MethodInvoker)delegate{outputTextBox.AppendText(Data + Environment.NewLine);});}

调用
在这里插入图片描述

海康&大华&DSS获取RTSP

实时流

海康:

rtsp://[username]:[password]@ip:[port]/[codec]/[channel]/[subtype]/av_stream
说明:
username: 用户名。例如admin。
password: 密码。例如12345。
ip: 为设备IP。例如 192.0.0.64。
port: 端口号默认为554,若为默认可不填写。
codec:有h264、MPEG-4、mpeg4这几种。
channel: 通道号,起始为1。例如通道1,则为ch1。
subtype: 码流类型,主码流为main,辅码流为sub。

栗子:

IPC

rtsp://admin:123456@192.168.18.105:554/h264/ch1/main/av_stream

NVR
rtsp://admin:123456@192.168.18.106:554/Streaming/Channels/101

说明:

101,第一个1代表通道,最后一个1代表麻溜。

大华:

rtsp://[username]:[password]@ip:[port]/cam/realmonitor?channel=1&subtype=0
说明:
username: 用户名。例如admin。
password: 密码。例如admin。
ip: 为设备IP。例如 10.7.8.122。
port: 端口号默认为554,若为默认可不填写。
channel: 通道号,起始为1。例如通道2,则为channel=2。
subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。

栗子:

rtsp://admin:admin@192.168.18.107:554/cam/realmonitor?channel=2&subtype=1

回放流

海康:

rtsp://[username]:[password]@ip:[port]/Streaming/tracks/101?starttime=20120802t063812z&endtime=20120802t064816z

说明:

101:1,表示通道1;01,表示以单播形式回放指定设备的通道中的录像文件

starttime:开始时间

endtime:结束时间

时间范围是starttime到endtime,其中starttime和endtime的格式要符合ISO 8601。

具体格式是YYYYMMDD”T”HHmmSS.fraction”Z” ,Y是年,M是月,D是日,T是时间分格符,H是小时,M是分,S是秒,Z是可选的、表示Zulu (GMT) 时间。

大华:

rtsp://[username]:[password]@ip:[port]/cam/playback?channel=1&subtype=0&starttime=2017_01_10_01_00_00&endtime=2017_01_10_02_00_00

说明:

username: 用户名。例如admin。
password: 密码。例如admin。
ip: 为设备IP。
port: 端口号默认为554,若为默认可不填写。
channel: 通道号,起始为1。例如通道2,则为channel=2。
subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。

starttime:开始时间

endtime:结束时间

大华DSS

rtsp://ip:[port]/dss/monitor/params?cameraid=设备编号$通道号&substream=码流类型

说明:

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5725b8416e7947ee9298abf02e1ec911.png

设备编号:平台上设备编号,例如1000004
通道号:设备下通道,从0(通道一)开始。
码流类型:1代表主码流,2代表辅码流

栗子:

rtsp://192.168.19.102:9090/dss/monitor/params?cameraid=1000112$0&substream=1


http://www.ppmy.cn/ops/113777.html

相关文章

【系统架构设计师】软件架构的概念(经典习题)

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6~8题】【第9题】【第10题】【第11题】【第14~18题】【第1题】 描述了一类软件架构的特征,它独立于实际问题,强调软件系统中通用的组织结构选择。垃圾回收机制是…

玩了 10 年 B 站,这些神仙功能我竟然不知道!

本文转载自「哔哩哔哩」官方公众号&#xff0c;为了保持简洁&#xff0c;对部分图片进行了删除&#xff08;不影响阅读&#xff09;&#xff0c;添加了一些小标题&#xff0c;感兴趣的话可以去阅读原文&#xff1a;玩了 10 年 B 站&#xff0c;这些神仙功能我竟然不知道&#x…

第十一章 【后端】商品分类管理微服务(11.1)——创建父工程

第十一章 【后端】商品分类管理微服务 11.1 创建父工程 项目名称:EasyTradeManagerSystem:Easy 表示简单易用,Trade 表示交易,Manager 表示管理,System 表示系统,强调系统在商品交易管理方面的便捷性,简称 etms。 新建工程 yumi-etms yumi-etms 作为所有模块的父工程,…

Charles mac电脑配置

安装 Charles&#xff1a; 如果你还没有安装 Charles&#xff0c;可以从官方网站下载安装包并按照提示完成安装。 启动 Charles&#xff1a; 安装完成后&#xff0c;启动 Charles 应用程序。 设置 Charles 代理&#xff1a; Charles 默认的代理端口是 8888。你可以通过以下步…

qwen2.5 vllm推理;openai function call调用中文离线agents使用

参考: https://qwenlm.github.io/zh/blog/qwen2.5/ https://qwen.readthedocs.io/zh-cn/latest/framework/function_call.html#vllm 安装: pip install -U vllm -i https://pypi.tuna.tsinghua.edu.cn/simplevllm-0.6.1.post2 运行:</

Alluxio EnterpriseAI on K8s 部署教程

Alluxio Enterprise AI on K8s 部署视频教程 视频为Alluxio Enterprise AI on K8s 部署视频教程。下面内容将主要介绍如何通过 Operator&#xff08;Kubernetes 管理应用程序的扩展&#xff09;在 Kubernetes 上安装 Alluxio。 1. 系统要求 Kubernetes 至少1.19版本的 Kubern…

weblogic CVE-2017-3506 靶场攻略

漏洞描述 Weblogic的WLS Security组件对外提供了webserver服务&#xff0c;其中使⽤了XMLDecoder来解析⽤户输⼊的XML数据&#xff0c;在解析过程中出现反序列化漏洞&#xff0c;可导致任意命令执⾏。 影响版本 受影响版本&#xff1a;WebLogic 10.3.6.0, 12.1.3.0, 12.2.1.…

Python数据分析案例59——基于图神经网络的反欺诈交易检测(GCN,GAT,GIN)

以前的数据分析案例的文章可以参考&#xff1a;数据分析案例 案例背景 以前二维的表格数据的机器学习模型都做烂了&#xff0c;[线性回归,惩罚回归,K近邻,决策树,随机森林,梯度提升,支持向量机,神经网络]&#xff0c;还有现在常用的XGBoost&#xff0c;lightgbm&#xff0c;ca…