SSM架构 +Nginx+FFmpeg实现rtsp流转hls流,在前端html上实现视频播放

序言:

本文介绍通过SSM架构 +Nginx+FFmpeg实现rtsp流转hls流,在前端html上实现视频播放功能。此方法可用于网络摄像头RTSP视频流WEB端实时播放。(海康和大华都可以),我使用的是海康

步骤一:安装软件 FFmpeg(windows)

1.下载并解压: FFmpeg文件夹

2.配置环境变量: 在"Path"变量原有变量值内容上加上d:\ffmpeg\bin

3.验证: ffmpeg -version 出现版本号则成功。

步骤二:安装软件 Nginx(windows)

1.下载并解压: nginx文件夹

2.Nginx配置: 修改配置文件:nginx/conf/nginx.conf

java 复制代码
 location /hls {
			
			
			root html;
			
			index    index.html index.htm index2.html;
			
			# 允许跨域请求
			add_header Access-Control-Allow-Origin *;
        }
		

3.验证: 配置完之后,启动nginx服务。http://localhost:80/

RTSP地址获取流程

例如:rtsp://admin:bfm100866@192.168.1.64:554/streaming/channels/101

一、RTSP地址基本格式

海康摄像头的RTSP地址通常遵循以下基本格式:

java 复制代码
rtsp://[username]:[password]@[ip]:[port]/[path]


-username:摄像头的用户名,默认为"admin"。

-password:摄像头的密码,需根据设备实际设置而定。

-ip:摄像头的IP地址。

-port:RTSP端口号,默认为554,若未修改则可不写。

-path:流媒体的访问路径,根据摄像头的型号和配置不同而有所区别。

二、RTSP地址获取步骤

1.登录摄像头管理系统

首先,通过浏览器登录摄像头的Web管理系统,通常使用摄像头的默认IP地址(如192.168.1.64)和默认用户名密码(admin/admin或admin/12345)进行登录。

2.查看网络配置

在摄像头管理系统中,找到网络配置部分,查看并记录摄像头的IP地址、端口号等信息。

3.确定RTSP路径

RTSP路径可能因摄像头型号和固件版本而异,一般有以下几种格式:

-新格式:rtsp://[username]:[password]@[ip]:[port]/streaming/channels/

-例如,取主码流:rtsp://admin:123456@192.168.1.64:554/streaming/channels/101

-参数``中,通道1的主码流为"101",子码流为"102"。

-老格式:rtsp://[username]:[password]@[ip]:[port]/[videotype]/ch/[streamtype]/av_stream

-例如,主码流取流:rtsp://admin:12345@192.168.0.1:554/h264/ch1/main/av_stream

-参数中,videotype为视频编码类型(如h264、mpeg4),streamtype为码流类型(主码流为main,子码流为sub)。

4.测试RTSP地址

使用支持RTSP的播放器(如VLCMediaPlayer)输入RTSP地址进行测试,确认视频流是否能够正常获取和播放。

VLC安装包链接:VLC安装包https://download.csdn.net/download/qq_39951524/90465347

FFmpeg命令行转流(rtsp 转 hls流)

java 复制代码
ffmpeg -fflags +genpts
 -i "rtsp://admin:bfm100866@192.168.1.64:554/streaming/channels/101" 
 -c copy 
 -f hls 
 -hls_time 10 
 -hls_list_size 10 
  D:/nginx/html/hls/test.m3u8

命令解释

java 复制代码
-fflags +genpts: 这个选项告诉 FFmpeg 在处理输入文件时生成 PTS。这对于某些编码的视频文件(特别是那些 PTS/DTS 不完全正确或缺失的)非常有用。它可以确保 PTS 被正确生成,这对于 HLS 流的正确播放很重要。

-i "rtsp:sdd.mp4": 指定输入文件,这里是 rtsp视频流。

-c copy: 使用复制流的方式来编码视频和音频,这意味着不对数据进行重新编码,只是简单地复制数据。这可以减少处理时间和提高效率,但前提是输入和输出容器及编解码器必须兼容。

-f hls: 指定输出格式为 HLS。

-hls_time 2.0: 设置每个 HLS 分片的时长为 2 秒。

-hls_list_size 1: 指定播放列表中最多包含一个分片。这对于事件驱动的直播非常有用,因为你可以在事件发生时快速更新播放列表。

output/: 指定输出目录,所有生成的 HLS 文件和播放列表将被放置在此目录中。

HTML通过html播放

使用 DH-HlsFlv-PlayerDemoV1.1.3 程序包中的界面

注意:(用video.js打不开hls流视频 )本人找了很久才找到可以播放hls的网页

在页面中把hls地址输入到里边(http://服务器IP:80/hls/test.m3u8)

就可以展示出监控视频的界面了

如果想把内容集合到SSM架构中

可以查看下一篇文章:链接:SSM架构 +java后台 实现rtsp流转hls流,在前端html上实现视频播放

相关推荐
toooooop85 分钟前
Nginx 反向代理 HTTPS CDN 配置检查清单(避坑版)
运维·nginx·https·cdn
群联云防护小杜14 分钟前
国产化环境下 Web 应用如何满足等保 2.0?从 Nginx 配置到 AI 防护实战
运维·前端·nginx
凤凰战士芭比Q19 分钟前
LNMP环境部署 KodBox私有云盘
linux·架构
小猪咪piggy2 小时前
【微服务】(4) 负载均衡
微服务·云原生·架构
短视频矩阵源码定制3 小时前
矩阵系统哪个好?2025年全方位选型指南与品牌深度解析
java·人工智能·矩阵·架构·aigc
尽兴-3 小时前
[特殊字符] 微前端部署实战:Nginx 配置 HTTPS 与 CORS 跨域解决方案(示例版)
前端·nginx·https·跨域·cors·chrom
DARLING Zero two♡4 小时前
云原生基石的试金石:基于 openEuler 部署 Docker 与 Nginx 的全景实录
nginx·docker·云原生
小猪咪piggy4 小时前
【微服务】(3) 服务注册与发现
微服务·云原生·架构
刺客_Andy5 小时前
React 第五十二节 Router中 useResolvedPath使用详解和注意事项示例
前端·react.js·架构
推理幻觉6 小时前
IDE/编码代理架构与 Cursor 相关研究(汇总)
ide·人工智能·架构·agent