首页 > 编程知识 正文

rtsp视频流服务器,海康RTSP组播

时间:2023-05-06 12:19:22 阅读:196549 作者:398

RTSP视频流直播实现(海康) 简述

搭建需要使用到两个第三方工具,nginx和ffmpeg,nginx用于视频流转发,ffmpeg用于做视频流RTSP转RTMP

系统环境 ubuntu 16.04DS-2CD2T25D 海康设备 nginx搭建

ubuntu这里使用命令行apt-get安装

$ sudo apt-get install software-properties-common python-software-properties$ sudo add-apt-repository ppa:nginx/stable$ sudo apt-get update$ sudo apt-get install nginx$ sudo apt-get install libnginx-mod-rtmp

安装完成后配置rtmp

$ sudo su $ cd /etc/nginx$ vim nginx.conf

添加以下内容

rtmp{ server{ listen 1935; application live{ live on; record off; } application hls{ live on; hls on; hls_path nginx-rtmp-module/hls; hls_cleanup off; } }} 使用 $ sudo nginx

基本命令

开启:nginx测试配置有效性:nginx -t加载配置文件:nginx -s reload指定配置文件:nginx -c nginx2.conf关闭:nginx -s stop ffmpeg搭建

官网下载ffmpeg压缩文件,我这里下载的是4.2.3版本

官网下载地址:http://ffmpeg.org/download.html

安装必要库

$ sudo apt-get install yasm

下载ffmpeg压缩包完成后,开始编译配置

$ sudo su$ mkdir /usr/local/ffmpeg$ cd /usr/local/ffmpeg拷贝ffmpeg压缩文件到该目录$ tar -xvjf ffmpeg-4.2.3.tar.bz2$ ./configure --enable-shared --prefix=/home/yourname/Software/ffmepeg/install$ make$ make install$ vim /etc/ld.so.conf.d/libc.conf另起一行,加入路径动态库路径 /usr/local/ffmpeg/lib $ ldconfig加入全局环境变量$ vim ~/.bashrc# ffmpegFFMPEG=/usr/local/ffmpegexport PATH= $FFMPEG/诚心的帽子:$PATH$ source ~/.bashrc$ ffmpeg -version 使用

开启视频流转换

$ ffmpeg -i "rtsp://admin:hik12345@192.168.1.156:554/Streaming/Channels/101?transportmode=unicast" -vcodec copy -f flv -s 1280x720 -q 5 rtmp://127.0.0.1:1935/live/test

rtsp://admin:12345@172.6.22.234:554/Streaming/Channels/101?transportmode=unicast
rtsp://admin:12345@172.6.22.106:554/Streaming/Channels/102?transportmode=unicast (单播)
rtsp://admin:12345@172.6.22.106:554/Streaming/Channels/102?transportmode=multicast (多播)

参数说明

i 设定输入流

f 设定输出格式

ss 开始时间

b 设定视频速率,默认为200bit/s

r 设定帧速率,默认为25

s 设定画面的宽高

aspect 设定画面的比例

vn 不处理视频

vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码

an:去除音频流

vn: 去除视频流

PS:

海康设备的rtsp流的视频播放有许多方法,上边的使用的是RTMP的流播放,使用浏览器直播视频,延迟相对也比较低。还有其他的几种方案,如下:

WebRTCHLS安卓app苹果app

之前用的是hls的方法,延迟特别高,nginx将接受到的rtsp流缓存到一个ts文件中,然后继续更新m3u8文件,m3u8的文件保存了最近视频或音频片段的索引,而前端直接读取的是m3u8的缓存,这样达到近似直播的效果。

一般来说HLS方式读取直播流,延迟是2-3个ts文件的时长。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。