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

相关推荐
不太会编程的IT男34 分钟前
在 Jetson Orin 开发套件上使用 Hardware Encoder / Decoder 构建 FFmpeg
ffmpeg·视频编解码·h.264
真实的菜1 小时前
Kafka生态整合深度解析:构建现代化数据架构的核心枢纽
架构·kafka·linq
guojl2 小时前
营销客群规则引擎
架构
m0_687399842 小时前
写一个Ununtu C++ 程序,调用ffmpeg API, 来判断一个数字电影的视频文件mxf 是不是Jpeg2000?
开发语言·c++·ffmpeg
Natsume17102 小时前
嵌入式开发:GPIO、UART、SPI、I2C 驱动开发详解与实战案例
c语言·驱动开发·stm32·嵌入式硬件·mcu·架构·github
DemonAvenger2 小时前
深入理解Go的网络I/O模型:优势、实践与踩坑经验
网络协议·架构·go
aqi004 小时前
FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频
android·ffmpeg·音视频·流媒体
鹏程十八少5 小时前
7.Android 设计模式 享元模式 在商业项目中的落地
架构
老周聊大模型5 小时前
《ChatGLM/Llama调优实战:从指令微调到RLHF的工业级对齐方案》
人工智能·程序员·架构
weixin_437398216 小时前
转Go学习笔记
linux·服务器·开发语言·后端·架构·golang