以海康网络摄像头为例。
Rtsp的链接地址为:
rtsp://admin:12345@192.168.10.101:554/h264/ch33/main/av_stream
admin 账号; 12345 密码; 192.168.10.101 摄像头Ip地址; 554 为rtsp协议广播端口;
h264 摄像头监控视频的数据格式; 33 摄像头的通道号(第一个为33 第二个为34 以此增加);
main 为主信号通道。
这些信息都可以在海康的iVMS-4200客户端 主预览 网络配置里查看(通道号除外)
Rtsp 可以用 VLC Media Player 播放(如何播放 自行百度)
确保rtsp地址正确后 准备 ffmpeg 环境(自行百度)
然后用 cmd/powershell 键入
ffmpeg -i rtsp://admin:12345@192.168.10.102:554/h264/ch33/main/av_stream -c:v copy -c:a copy -f hls -hls_time 1 -hls_list_size 3 -hls_flags delete_segments ./index.m3u8
效果:
语句说明:
-hls_time 截取的视频时长 1 表示1s
-hls_list_size 记录的视频索引的个数
-hls_flags delete_segments 表示删除记录索引外的视频文件
./index.m3u8 表示路径+文件名+.m3u8(hls 文件后缀)
在.Net 开发环境下 推荐个比较不错的ffmpeg 开源处理库:Xabe.FFmpeg
代码示例:
using Xabe.FFmpeg;
var cancellationTokenSource = new CancellationTokenSource();
var mediaInfo = await FFmpeg.GetMediaInfo("RTSP URL");
var conversionResult = await FFmpeg.Conversions.New()
.AddStream(mediaInfo.Streams)
.AddParameter("-vcodec copy")
.AddParameter("-f hls")
.AddParameter("-hls_time 1")
.AddParameter("-hls_list_size 3")
.AddParameter("-hls_flags delete_segments")
.SetOutput(string.Format("{0}/index.m3u8", "FILE PATH"))
.Start(cancellationTokenSource.Token);
html5 video.js 支持hls视频在线播放 Vue3下推荐开源控件Vue3-video-play
至于转发的话 nodejs写代码转发也行 推荐 XAMPP Control Panel 能少写一句代码是一句 嘿嘿



