准备两个工具,tsp-simple-server,和ffmpeg
通过网盘分享的文件:rtsp-simple-server_v0.19.1_windows_amd64.zip
链接:
百度网盘 请输入提取码 提取码: r33j
通过网盘分享的文件:ffmpeg7.zip
链接:
百度网盘 请输入提取码 提取码: bs9f
1、获取 rtsp 视频流地址
若需测试 “真实摄像机 RTSP 流”,需准备一台网络摄像机,按其说明书获取地址(通常格式为rtsp://用户名:密码@摄像机IP:554/主码流路径,如海康摄像机:rtsp://admin:123456@192.168.1.100:554/h264/ch1/main/av_stream)
若没有,则用 rtsp-simple-server.exe 模拟一个。下载rtsp-simple-server.exe ,CMD中 输入rtsp-simple-server.exe 启动
准备一个MP4视频,将MP4视频转化成 rtsp 视频流:(安装ffmpeg)
ffmpeg -re -stream_loop -1 -i test.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/video
2、将 rtsp 转成 网页可播放的 hls 视频流
ffmpeg -rtsp_transport tcp -i "rtsp://127.0.0.1:8554/video" -c:v libx264 -preset ultrafast -tune zerolatency -c:a aac -b:a 64k -hls_time 3 -hls_list_size 5 -hls_flags append_list+omit_endlist+delete_segments -hls_segment_filename "D:\hls\test_%03d.ts" -f hls "D:\hls\test.m3u8"
这条命令执行成功之后画面如下,视频流将持续输出分段视频
命令参数说明:
- 输入设置:
- -rtsp_transport tcp:使用 TCP 传输 RTSP 流,提高稳定性
- rtsp://username:password@camera-ip:554/stream-path:替换为实际的 RTSP 地址
- 编码设置:
- -c:v libx264:使用 H.264 编码视频
- -preset ultrafast -tune zerolatency:优化为低延迟场景
- -c:a aac -b:a 128k:音频编码为 AAC 格式
- HLS 关键设置:
- -hls_time 2:每个 TS 分片 2 秒(值越小延迟越低)
- -hls_list_size 5:播放列表最多包含 5 个分片
- -hls_flags append_list:实时追加新分片到播放列表
- -hls_flags omit_endlist:不添加结束标记,表示流是持续的
- -hls_flags delete_segments:自动删除超出列表大小的旧分片
- 输出设置:
- ./hls/stream_%03d.ts:TS 分片文件的保存路径和命名格式
- ./hls/stream.m3u8:HLS 索引文件
转换成功后,目录里面产生了*.m3u8 以及分段视频流 *.ts 文件
<video controls width="1280" height="720"> <source src="http://localhost:8060/test.m3u8" type="application/vnd.apple.mpegurl"> 你的浏览器不支持HLS播放 </video>
IIS 设置 HLS 视频流网站允许跨域
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>

3801

被折叠的 条评论
为什么被折叠?



