目录

SSM架构-NginxFFmpeg实现rtsp流转hls流,在前端html上实现视频播放

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

序言:

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

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

下载并解压: FFmpeg文件夹

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

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

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

下载并解压: nginx文件夹

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


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

https://i-blog.csdnimg.cn/direct/016ea010c9ee41589e152ea5f25ed081.png

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

https://i-blog.csdnimg.cn/direct/53e876383f764a74abe343de280eccef.png

RTSP地址获取流程

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

一、RTSP地址基本格式

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


rtsp://username]:[password]@[ip]:[port/path


-username摄像头的用户名默认为admin”。

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

-ip摄像头的IP地址

-portRTSP端口号默认为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安装包链接:

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


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

命令解释


-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的网页

https://i-blog.csdnimg.cn/direct/634065ee1aab4b13bfcf7e1bacfba796.png

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

https://i-blog.csdnimg.cn/direct/21534579db9749c8917d849ce4ecdfbe.png

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

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

可以查看下一篇文章:链接: