认识摄像头流媒体

  • 1.摄像头的流媒体协议

  • 什么是流媒体协议

流媒体(Streaming Media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送,如果不使用此技术,就必须在使用前下载整个媒体文件。

看视频或者直播的本质上就是观看连续快速播放的图片,这里的每一张图片就是帧,每秒播放的图片数量即播放速度称为帧率(FPS)。根据视觉残留原理,每秒24帧以上人眼就觉得连贯了,所以视频直播或者游戏帧率(FPS)一般都会大于该值,多数情况下为30

  • 摄像头的流媒体协议

国际上常用的流媒体协议主要有HTTPRTSPRTMP。由于摄像头属于直播性质,所以对实时性要求较高,国内摄像头厂商如海康、大华品牌的摄像头多采用RTSP协议。摄像头品牌不同,RTSP的地址也不同,其格式分别为如下。

海康:

海康IPC设备协议格式

大华:

大华IPC设备协议格式

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)

img

在打开媒体窗口选择网络(N),在请输入网络URL:输入框输入摄像头的RTSP地址,确定无误后点击右下角的播放(P)按钮

image-20210303211731984

如果能看到摄像头的视频画面,则说明该RTSP地址正常。

image-20210303211851907

  • EasyNVR

官网下载地址:easynvr-1257312146.cos.ap-shanghai.myqcloud.com/download.ht… 在这里笔者选择最新版本EasyNVR-4.2.1,下载移动到指定盘符解压即安装完毕,笔者移动到了D盘D:\EasyNVR-windows-4.2.1-2103010958

image-20210303210147092

进入到EasyNVR-windows-4.2.1-2103010958目录,找到EasyNVR.exe文件,双击执行启动EasyNVR,此时会打开Dos窗口,如下图所示

image-20210303210512797

浏览器输入EasyNVR服务地址http://192.168.10.3:10800 使用默认用户名:easynvr 密码:easynvr,访问系统;访问通道管理->通道列表EasyNVR默认初始化了16路通道,供我们配置(EasyNVR是一款收费软件,我们正在使用的属于试用版,最大支持通道数量16,有效期一个月), 选择其中一条通道记录编辑。

image-20210303213712880

通道管理->通道列表->通道编辑页面,录入通道信息,保存

image-20210303214516046

访问视频广场->设备列表->设备资源,可以看到刚才启用的通道,如果配置通道在线,则说明配置无误,并且RTSP地址有效。

image-20210303215529429

3.免费开源的FFmpeg

FFmpeg是视频流与后端间桥梁,通过FFmpeg命令后端才得以实现取流,抓拍,录像,视频压缩转码等功能

  • 软件介绍

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPLGPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

  • 下载安装

下载链接:pan.baidu.com/s/1xaL-EB1K… 提取码:dcpv。下载至本地解压,如有需要修改解压后的文件名,笔者这里改为ffmpeg,如图。

image-20210302222928656

  • 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文件位置
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享