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上实现视频播放

相关推荐
Java烘焙师12 分钟前
AI编程实战:从零到一搭建全栈项目
java·架构·树莓派·ai实战
ai产品老杨15 分钟前
破局算力碎片化:基于K8s调度与Docker多架构镜像的GB28181/RTSP异构AI视频底座实践
docker·架构·kubernetes
雪碧聊技术16 分钟前
前端项目部署到服务器
服务器·nginx·ubuntu·前端项目部署
学嵌入式的小杨同学16 分钟前
STM32 进阶封神之路(二十三):低功耗深度解析 —— 从睡眠模式到停机模式(底层原理 + 寄存器配置)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
returnthem16 分钟前
Kubernetes集群架构组件全解
容器·架构·kubernetes
霁月的小屋31 分钟前
深入浅出多包架构(Monorepo)
架构
洛洛呀。34 分钟前
DDD架构为何拆分Entity层?从MVC到领域模型的演进之道
架构·mvc·ddd
前端不太难3 小时前
AI 原生架构:鸿蒙App的下一代形态
人工智能·架构·harmonyos
Fzuim3 小时前
从 LLM 接口到 Agent 接口:AI 融合系统的架构演进与未来趋势分析报告
人工智能·ai·重构·架构·agent·runtime
bearpping9 小时前
Nginx 配置:alias 和 root 的区别
前端·javascript·nginx