此外,考虑到设备侧的上行带宽瓶颈,一般来说,本地录像需要尽可能清晰(比如1920*1080分辨率),上传视频数据,传输1280*720分辨率,也就是我们传统意义提到的双码流编码。 publisherHandle, 1, echo_cancel_delay); libPublisher.SmartPublisherSaveImageFlag(publisherHandle, 1); }双码流编码以采集摄像头采集为例 ,如果需要双码流编码,采集数据源时,以大分辨率作为采集基准分辨率,如采集1920*1080的,那么如果需要上传实时视频数据的时候,只需要缩放,得到1280*720分辨率的编码数据: @Override 接口参数第一个是实例句柄,如果需要两路编码,势必对应两个推送实例,也就是两个handle,一个用来录像,一个用来gb28181上行数据推送。 isGB28181StreamRunning) { releasePublisherHandle(); } }技术总结按需编码,可以只是本地录像或上行数据推送,对应一个实例完成,如果双码流编码
技术背景我们在做Android平台GB28181设备接入模块的时候,遇到这样的场景,比如执法记录仪或智慧工地等场景下,由于GB28181设备接入模块,注册到国标平台后,平时只是心跳保持,或还有实时位置订阅 网络环境并不是太好,所以,催生了这样一个诉求:部分开发者希望能本地录像的时候,录制高分辨率(比如1920*1080),国标平台侧发起实时视频查看请求的时候,上传低分辨率(如1280*720)数据,有点类似于IPC的主码流和子码流 } int scale_w = 0, scale_h = 0, scale_filter_mode = 0; scale_filter_mode = 3; @param scale_height: 缩放高, 必须是偶数, 0或负数不缩放 * * @param scale_filter_mode: 缩放质量, 传0使用默认速度,可选等级范围是:[1,3] 国标平台侧发起视频请求后,Android平台GB28181设备接入模块的处理如下: @Override public void ntsOnInvitePlay(String deviceId
二.H264有什么强大的地方: 低码率(Low Bit Rate):在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3 2.2.高质量的图像:H.264能提供连续 三.H264码流组成部分 H264分层能够分成两层,一层是VCL层(视频编码层),另外一层是NAL层(网络提取层)。 它的原因是:在NALU加到Annexb上时,需要添加每组NALU之前的开始码StartCodePrefix,如果该NALU对应的slice为一帧的开始则用4位字节表示,ox00000001,否则用3位字节表示 解码器检测每个起始码,作为一个NAL的起始标识,当检测到下一个起始码时,当前NAL结束。 所以一个标准的H264码流结构:SEI+SPS+PPS+IDR
现已将“211工程”和“985工程”等重点建设项目统筹为“双一流”建设。 注:本文所有数据均来源于网络。 00 何为“双一流”? ? “双一流”建设是世界一流大学和一流学科建设,是中国高等教育领域继“211工程”“985工程”之后的又一国家战略。 03 国内“双一流”高校分布 ? 04 国内“双一流”高校专业分布 ? 为了进一步精准描绘国内双一流高校的质量情况,我们区分统计各高校一流学科的数量后再次绘制分布地图。 能够看到,“双一流”是瞄着世界一流大学和学科的标准在建设,但距离真正的世界一流还有很长的路要走。
#--log-file=log/siplog --auto-answer 200 #video --video --vcapture-dev 0 #webrtc echo --ec-opt=3 mediaServerItem.isRtpEnable()) { logger.warn("[点播] 单端口收流时不支持TCP主动方式收流 deviceId: {},channelId mediaServerItem.isRtpEnable()) { logger.warn("[点播] 单端口收流时不支持TCP主动方式收流 deviceId: {},channelId "ip" : "192.168.16.213", "mediaServerId" : "f5pIoX4tqRzE7TI0", "originType" : 3, WebHook.cpp:188 operator() | hook http://127.0.0.1:18081/api/record/on_record_mp4 14ms,failed[network err]:3(
1、需求背景目前不是所有的直播推流设备都支持GB28181的国标注册,有的只能输出直播流,有的只能支持RTSP的推流。 那么,项目中如何把 rtsp推流或直播流转成GB/T281812、开启RTSP2.1、基础配置配置RTSP端口3、获取RTSP推流地址3.1、RTSP推流地址格式示例:rtsp://192.168.2.135 :1554/stream_3通道6:rtsp://192.168.2.135:1554/stream_64、配置设备推流将上面生成的rtsp推流地址,配置到无人机 或是 推流的设备上面5、配置拉转RTSPLiveNVR ,固定值不能修改5.2、直播流地地址示例通道1:rtsp://127.0.0.1:1554/stream_1通道3:rtsp://127.0.0.1:1554/stream_3通道6:rtsp://127.0.0.1 6、配置级联到GB28181国标平台具体参见:LiveNVR支持RTSP/RTMP/HLS/HTTP-FLV流转换成GB28181输出级联接入到国标平台
我们在往期的文章中分享过关于主子码流的技术文章,TSINGSEE青犀视频的平台也可支持双码流,以及主子码流的自由切换。关于主子码流,一般来说,主码流较大但清晰度高,占用的带宽也较高。 子码流的清晰度与主码流相比,要稍低一些,但是占用带宽小。所以一般来说,主码流用于本地存储,能获得更清晰的存储录像,子码流则适用于在低带宽网络上传输,节省带宽。 EasyCVR平台目前除了GB28181协议和RTMP推流以外,其他接入的协议都可以在Web页面上切换主子码流(选择1则是主码流,选择2则是子码流)。 1)首先,先调用EasyCVR平台的登录接口: 2)然后获取设备和通道列表: 3)播放一个通道的主码流,记住这里stream要传main: 4)再切换子码流,这里要注意:首先要调用stopchannelstream ,平台能支持主流标准协议如GB28181、RTSP/Onvif、RTMP等,还能支持厂家的私有协议与SDK接入,比如海康Ehome、海康SDK、大华SDK等,可分发RTSP、FLV、HLS、WebRTC
前言 目前实际项目对接遇见很多平台级联过程中,视频流有类似rtsp一样的rtcp保活机制,随翻看国标GB28181-2016协议文档,查阅相关说明,现分享如下。 协议原文 平台、设备媒体流保活机制 贴张协议文档规范截图 见解 根据协议描述中介绍,国标暂未规定视频流的rtcp保活,这块还是各个视频厂家自己定义的保活手段,如遇见rtcp保活手段的方式,可参考rtsp
高清网络摄像机产品编码器都会产生两个编码格式,称为主码流和子码流,这就叫双码流技术。目的是用于解决监控录像的本地存储和网络传输的图像的质量问题。 ? ? 双码流能实现本地和远程传输的两种不同的带宽码流需求,本地传输可以用主码流,能获得更清晰的存储录像,远程传输就因为带宽限制的原因,而使用子码流来获得流畅的图像和录像。 当一路视频进入录像机后,录像机可以编码提供了主码流和子码流两种码流,主码流用来本地录像,子码流用来网络传输。默认是录像机本地访问,自动主码流显示。远程访问自动子码流显示。 ? 主码流一般码流较大,清晰度高,占用的带宽也就高。子码流,在主码流的图像环境下降低了图像格式,清晰度较主码流要低,占用带宽小。主码流一般用于存储,子码流用于网传。 视频直播点播流媒体服务器可以进行视频直播/录像/回放,在取流的时候可以根据自己的需要来取流,可以是主码流,也可以是子码流。 ?
EasyGBS是基于国标GB28181协议的视频云服务平台,它可以支持国标协议的设备接入,实现视频的转码与分发,能够为大数据平台的搭建提供视频能力支持。 EasyGBS能够将监控视频实现网页无插件直播,这其中运用到了主子码流的配置。一边是从摄像机取流,一边是转换协议之后进行分发。 双码流能实现本地和远程传输的两种不同的带宽码流需求,本地传输可以用主码流,能获得更清晰的存储录像,远程传输就因为带宽限制的原因,而使用子码流来获得流畅的图像和录像。 EasyGBS可以进行视频直播/录像/回放,在取流的时候用户可以根据自己的需要来取流,可以是主码流,也可以是子码流。 EasyGBS支持将GB28181设备/平台推送的PS流转成ES流,并提供RTSP、RTMP、FLV、HLS、Webrtc等多种视频流格式进行分发。
视频流的传输一定涉及到视频帧的获取,TSINGSEE青犀视频开发的平台比如EasyNVR、EasyGBS等观看视频的时候,1S会产生一个关键帧,是否流畅就跟视频帧有很大关系。 国标GB28181协议视频推流组件EasyGBD内的默认帧率是20,那么我们如何提高EasyGBD的推流帧率? millisPerFrame = 1000 / 30; x264.create(width, height, 30, bitrate/1000); EasyGBD是GB/T28181 Device的简称,是国标GB28181
1、主子码流切换1.1、国标设备编辑国标设备菜单-》编辑1.2、配置码流索引1.2.1、配置主码流1.2.1.1、主码流播放1.2.2、配置子码流1.2.2.1、子码流播放2、相关问题2.1、所有设备都支持吗 不是所有的摄像头设备都支持,LiveGBS支持信令的主子码流切换,同样需要设备实现的支持,上面测试播放的设备是:TP-Link IP-Camera,判断设备是否支持可以编辑配置码流索引,尝试播放。
不过,有软件实践提名奖这样的研发底子在,终于,我还是做回了开发, 开个玩笑:毕竟财务易得,开发难求~ 就这样~~~在开发的路上走远了~~~ 好了,回到正题,这偏文章是跨越10年对学习的思考,还在R3的业务学习期 但是是互动式的录屏,非要做的话相当于PDF相对与adobe form的体验效果,截图如下: 以业务流程为核心,包含了所有的配置,tcode应用,甚至是增强开发: 一直到完成,退出: 虽然这样的R3确实是太老
字节码解析 结构 本位将详细介绍字节码的2进制结构和JVM解析2进制流的规范。 文中斜体 ~00~03 表示16进制流的从第一个字节开始的偏移位置。~1d 表示1行d列这1个字段,~00~03 表示0行0列到0行3列这4个字节。每2个16进制数表示一个字节。 字段是否为enum 字段的描述是用一个简单的符号来表示字段的类型: 表示字符 含义 标识字符 含义 B byte字节类型 J long长整型 C char字符类型 S short短整型 D double双精度浮点 ~c3~c4:0x0013表示抛出的异常类型指向常量池#19位置的 Class ,即"java/lang/RuntimeException"。 到此,2进制流的异常处理介绍完毕。 理解字节码还有一个好处,更容易理解多线程的3个主要特性:原子性、可见性和有序性。比如new Object() 从字节码层面一看就知道不具备原子性,指令重排的问题在字节码层面也是一目了然。
在之前的博文中,我们和大家分享了国标EasyGBD视频推流组件在开发过程中,实现了视频采集功能(EasyGBD搜集视频采集数据功能是如何实现的),那么同样,音频采集也是我们需要完善的地方。 AudioFormat.ENCODING_PCM_16BIT, bufferSize); 3、
任务重:不仅需确认学生健康码,对同住人如父母、兄弟姐妹等人双码信息也需审核确认。 基于EasyDL的 健康码行程码智能识别 让我们来拆解一下究竟需要审查健康码/行程码哪些信息? 如下图所示(选取特定省份二维码为例),健康码需要审核姓名、身份证号、日期以及健康码颜色;行程码需要审核电话号码、日期、行程码颜色以及到过的城市。 但现实中会遇到另外一个问题,大家在提交中会将健康码行程码混合。针对双码的混合图像需要使用飞桨EasyDL图像分类进行区分。 标注格式需要注意 值得提及的是,双码智能识别依赖于EasyDL多样化的功能 图像分类:可以将双码分类与颜色检测结合 物体检测:可以增加类别、以检测代替分类 文字识别:识别多种字体的文字和数字 在这一过程中可以发现飞桨
,比如说,音视频不同步的问题: 一、打算新添加RV1126多路码流功能: 1、什么是RV1126多路码流功能? RV1126多路码流指的是一个摄像头+一个麦克风同时推流到到多个地址,目前的话多路码流推流最多可以同时推到30个流地址(目前演示的是推到三个)。 如图所示,我的这个示例是同时推流到三个流地址,分别是: 1. rtmp://10.0.0.88:1935/live/cz_01 2. rtmp://10.0.0.88:1935/live/cz_02 3 3、多路码流涉及到的技术点: 其实多路码流和我们星球目前在讲解的单路码流推流有很多相似之处,但最大的不同是在采集到音视频编码数据后通过流媒体地址的映射关系传输到不同的队列进行存储。 下面是实现的效果: http://mpvideo.qpic.cn/0bc3qqajmaaajiakhec6vbrvbbgds2cabfqa.f10102.mp4?
导读 H.264码流结构解析 H.264编码格式 H.264的功能分为两层:视频编码层(VCL, Video Coding Layer)和网络提取层(NAL, Network Abstraction image.png H.264码流结构图 ? image.png 起始码:如果NALU对应的Slice为一帧的开始,则用4字节表示,即0x00000001;否则用3字节表示,0x000001。 脱壳操作:为了使NALU主体不包括起始码,在编码时每遇到两个字节(连续)的0,就插入一字节0x03,以和起始码相区别。解码时,则将相应的0x03删除掉。 ? if (bb.get(pos + 2) == 0x01) { as.match = true; as.startCode = pos + 3
minicap工具已经对Android 9.0进行了适配,但是采用scrcpy工具时出现获取的H264数据无法利用前端插件Broadway播放,这是因为Broadway插件不支持H264 baseline以外的码流 H264格式数据的码流通过profile_idc字段标识,小米9获取到的H264格式数据如图所示: 图片 其中profile_idc等于100表示码流是High档次,profile_idc等于66表示码流是 码流的取值是由手机硬件决定的。 获取视频流数据。 将获取的视频流数据解析成单条H264数据发送给web端,web端通过Broadway插件播放视频流实现实时投屏。 修改后scrcpy.jar获取得到的视频流解析数据如图所示,可以看到H264格式的数据profile_idc变成了66,码流变成baseline格式。
EasyGBS是基于公安部推出的安防主流协议(国标GB28181协议)的视频接入、处理及分发平台,具有视频直播监控、云端录像、云存储、检索回放、智能告警、语音对讲、平台级联等功能。 图片在EasyGBS平台级联时,如果下级视频源传输到EasyGBS过程中存在网络层级较多、或者网络不稳定、带宽不足等情况,在收流时,偶尔就会出现超时的情况,此时需要多次播放才可以成功拉流。 那么针对此情况,我们对EasyGBS增加了拉流超时的配置,可灵活对拉流时间进行调整。 测试拉流超时:图片easygbs.ini配置文件:图片在等待拉流的方法中,添加超时的时间参数:图片拉流超时判断:图片国标GB28181协议视频平台EasyGBS已经实现了十分丰富的安防视频功能,随着国家倡导平安城市