-
1.摄像头的流媒体协议
-
什么是流媒体协议
流媒体(Streaming Media
)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送,如果不使用此技术,就必须在使用前下载整个媒体文件。
看视频或者直播的本质上就是观看连续快速播放的图片,这里的每一张图片就是帧,每秒播放的图片数量即播放速度称为帧率(FPS
)。根据视觉残留原理,每秒24帧以上人眼就觉得连贯了,所以视频直播或者游戏帧率(FPS
)一般都会大于该值,多数情况下为30
。
- 摄像头的流媒体协议
国际上常用的流媒体协议主要有HTTP
、RTSP
、RTMP
。由于摄像头属于直播性质,所以对实时性要求较高,国内摄像头厂商如海康、大华品牌的摄像头多采用RTSP
协议。摄像头品牌不同,RTSP
的地址也不同,其格式分别为如下。
海康:
大华:
2.流媒体协议取流播放
当拿到了摄像头的RTSP
地址,首先便是要测试RTSP
地址是否有效。如果是Http
地址,可以通过Postman
或者SoapUI
等测试工具发起请求验证,对于RTSP
地址可以通过下面两种方式验证地址是否可用。我在网上搜索到一个可用的RTSP地址为rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov,广大读者如果身边没有摄像头,暂时可用该地址代替测试。
-
VLC
下载链接:pan.baidu.com/s/1xbMjDuJo… 提取码:bifr,安装过程和PC其他桌面软件一样,此处省略100字的步骤。
打开
VLC
播放器,依次选择媒体(M)
->打开网络串流(N)
。
在打开媒体窗口选择网络(N)
,在请输入网络URL:
输入框输入摄像头的RTSP
地址,确定无误后点击右下角的播放(P)
按钮
如果能看到摄像头的视频画面,则说明该RTSP
地址正常。
- EasyNVR
官网下载地址:easynvr-1257312146.cos.ap-shanghai.myqcloud.com/download.ht… 在这里笔者选择最新版本EasyNVR-4.2.1,下载移动到指定盘符解压即安装完毕,笔者移动到了D盘D:\EasyNVR-windows-4.2.1-2103010958
进入到EasyNVR-windows-4.2.1-2103010958目录,找到EasyNVR.exe
文件,双击执行启动EasyNVR
,此时会打开Dos窗口
,如下图所示
浏览器输入EasyNVR
服务地址http://192.168.10.3:10800 使用默认用户名:easynvr
密码:easynvr
,访问系统;访问通道管理
->通道列表
,EasyNVR
默认初始化了16
路通道,供我们配置(EasyNVR
是一款收费软件,我们正在使用的属于试用版,最大支持通道数量16
,有效期一个月), 选择其中一条通道记录编辑。
在通道管理
->通道列表
->通道编辑
页面,录入通道信息,保存
访问视频广场
->设备列表
->设备资源
,可以看到刚才启用的通道,如果配置通道在线,则说明配置无误,并且RTSP
地址有效。
3.免费开源的FFmpeg
FFmpeg
是视频流与后端间桥梁,通过FFmpeg
命令后端才得以实现取流,抓拍,录像,视频压缩转码等功能
- 软件介绍
FFmpeg
是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL
或GPL
许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec
,为了保证高可移植性和编解码质量,libavcodec
里很多code
都是从头开发的。
- 下载安装
下载链接:pan.baidu.com/s/1xaL-EB1K… 提取码:dcpv。下载至本地解压,如有需要修改解压后的文件名,笔者这里改为ffmpeg
,如图。
- FFmpeg指令
#rtsp视频流转m3u8
D:\ffmpeg\bin\ffmpeg -i rtsp地址 -c copy -f hls -hls_time 2.0 -hls_list_size 0 -hls_wrap 15 m3u8文件位置
#rtsp视频流传输到中继HTTP
D:\ffmpeg\bin\ffmpeg -i rtsp地址 -q 0 -f mpegts -codec:v mpeg1video -s 1366x768 中继http
#采用硬件加速rtsp视频流中继HTTP
D:\ffmpeg\bin\ffmpeg -hwaccel auto -rtsp_transport tcp -i rtsp地址 -f mpegts -codec:v mpeg1video -bf 0 -codec:a mp2 -r 25 -b:v 1000k -s 960x520 -an 中继http
#rtsp视频流抓拍
D:\ffmpeg\bin\ffmpeg -i rtsp地址 -ss 00:00:01 -vframes 1 -f image2 -vcodec png 照片文件位置
#rtsp视频流录像
D:\ffmpeg\bin\ffmpeg -y -i rtsp地址 -t 30 -vcodec copy -acodec copy -f mp4 录像文件位置
#视频压缩
D:\ffmpeg\bin\ffmpeg -i 源mp4文件 -threads 2 -r 25 -b:v 1000k -s 960x520 压缩后mp4文件位置
复制代码