此外,考虑到设备侧的上行带宽瓶颈,一般来说,本地录像需要尽可能清晰(比如1920*1080分辨率),上传视频数据,传输1280*720分辨率,也就是我们传统意义提到的双码流编码。 // Level 3.2 // libPublisher.SetAVCHWEncoderLevel(publisherHandle, 0x800); // Level 4 publisherHandle, 1, echo_cancel_delay); libPublisher.SmartPublisherSaveImageFlag(publisherHandle, 1); }双码流编码以采集摄像头采集为例 ,如果需要双码流编码,采集数据源时,以大分辨率作为采集基准分辨率,如采集1920*1080的,那么如果需要上传实时视频数据的时候,只需要缩放,得到1280*720分辨率的编码数据: @Override isGB28181StreamRunning) { releasePublisherHandle(); } }技术总结按需编码,可以只是本地录像或上行数据推送,对应一个实例完成,如果双码流编码
技术背景我们在做Android平台GB28181设备接入模块的时候,遇到这样的场景,比如执法记录仪或智慧工地等场景下,由于GB28181设备接入模块,注册到国标平台后,平时只是心跳保持,或还有实时位置订阅 网络环境并不是太好,所以,催生了这样一个诉求:部分开发者希望能本地录像的时候,录制高分辨率(比如1920*1080),国标平台侧发起实时视频查看请求的时候,上传低分辨率(如1280*720)数据,有点类似于IPC的主码流和子码流 国标平台侧发起视频请求后,Android平台GB28181设备接入模块的处理如下: @Override public void ntsOnInvitePlay(String deviceId 0:1); libPublisher.SetRTPSenderIPAddressType(rtp_sender_handle, video_des.isIPv4()? "); } } } } }技术总结需要注意的是,如果需要实现两路不同分辨率的编码,那么需要GB28181
现已将“211工程”和“985工程”等重点建设项目统筹为“双一流”建设。 注:本文所有数据均来源于网络。 00 何为“双一流”? ? 从分布上看,整体还是主要分布于东部和中部省份,新疆大学和云南大学的加入“点亮”了西北和西南好大学序列,也算是国家教育发展的一个战略性举措,高校最多的是北京(8所),其次是上海(4所)。 03 国内“双一流”高校分布 ? 04 国内“双一流”高校专业分布 ? 为了进一步精准描绘国内双一流高校的质量情况,我们区分统计各高校一流学科的数量后再次绘制分布地图。 能够看到,“双一流”是瞄着世界一流大学和学科的标准在建设,但距离真正的世界一流还有很长的路要走。
demand=0 hls_demand=0 maxStreamWaitMS=15000 mediaServerId=f5pIoX4tqRzE7TI0 取流报500错误: 2024-02-06 17:17 mediaServerItem.isRtpEnable()) { logger.warn("[点播] 单端口收流时不支持TCP主动方式收流 deviceId: {},channelId TCP主动方式收流"); } 修改后: if (device ! mediaServerItem.isRtpEnable()) { logger.warn("[点播] 单端口收流时不支持TCP主动方式收流 deviceId: {},channelId TCP主动方式收流"); } 终于是看到视频了,下一步,继续分析源代码。
1、需求背景目前不是所有的直播推流设备都支持GB28181的国标注册,有的只能输出直播流,有的只能支持RTSP的推流。 那么,项目中如何把 rtsp推流或直播流转成GB/T281812、开启RTSP2.1、基础配置配置RTSP端口3、获取RTSP推流地址3.1、RTSP推流地址格式示例:rtsp://192.168.2.135 后台管理页面-》通道配置-》编辑 通道配置,可以配置拉转的直播流地址5.1、直播流地址格式拉流地址格式 rtsp://127.0.0.1:1554/stream_通道号127.0.0.1 是服务器本地IP :1554/stream_65.3、通道配置直播流地址根据通道号配置直播流地址,注意ID对应到相应的通道上。 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
高清网络摄像机产品编码器都会产生两个编码格式,称为主码流和子码流,这就叫双码流技术。目的是用于解决监控录像的本地存储和网络传输的图像的质量问题。 ? ? 双码流能实现本地和远程传输的两种不同的带宽码流需求,本地传输可以用主码流,能获得更清晰的存储录像,远程传输就因为带宽限制的原因,而使用子码流来获得流畅的图像和录像。 当一路视频进入录像机后,录像机可以编码提供了主码流和子码流两种码流,主码流用来本地录像,子码流用来网络传输。默认是录像机本地访问,自动主码流显示。远程访问自动子码流显示。 ? 主码流一般码流较大,清晰度高,占用的带宽也就高。子码流,在主码流的图像环境下降低了图像格式,清晰度较主码流要低,占用带宽小。主码流一般用于存储,子码流用于网传。 视频直播点播流媒体服务器可以进行视频直播/录像/回放,在取流的时候可以根据自己的需要来取流,可以是主码流,也可以是子码流。 ?
前言: 本文是双指针算法的最后一文,以复写零和四数之和作为结束,介绍方式同样是题目解析,算法原理,算法编写三部曲,以下是题目的链接: 1089. 复写零 - 力扣(LeetCode) 18. 4Sum - 力扣(LeetCode) 那么话不多说,直接进入主题。 显然,这道题并不是通过n个循环就可以解决的,所以我们不妨直接使用双指针。 到这个阶段,不妨不用思考为什么使用双指针,因为目前来说算法基础并不牢靠,我们不妨积累经验。 四数之和 题目解析 题目的意思和三数之和十分像的,三数之和是找三个数等于0,那么该题目是找4个数字等于target,并且下标不能重复,也就是一个数字不能一直使用,题目的要求很简单,所以我们直接进入算法原理部分 双指针算法也就到这里啦,后面的是滑动窗口~ 感谢阅读!
好了,回到正题,这偏文章是跨越10年对学习的思考,还在R3的业务学习期,那个没有这么知识爆炸,AI,RPA什么都没有的上古时期,资料不仅仅是少,有些是真没有,就是不断的在吃螃蟹。
EasyGBS是基于国标GB28181协议的视频云服务平台,它可以支持国标协议的设备接入,实现视频的转码与分发,能够为大数据平台的搭建提供视频能力支持。 EasyGBS能够将监控视频实现网页无插件直播,这其中运用到了主子码流的配置。一边是从摄像机取流,一边是转换协议之后进行分发。 双码流能实现本地和远程传输的两种不同的带宽码流需求,本地传输可以用主码流,能获得更清晰的存储录像,远程传输就因为带宽限制的原因,而使用子码流来获得流畅的图像和录像。 EasyGBS可以进行视频直播/录像/回放,在取流的时候用户可以根据自己的需要来取流,可以是主码流,也可以是子码流。 EasyGBS支持将GB28181设备/平台推送的PS流转成ES流,并提供RTSP、RTMP、FLV、HLS、Webrtc等多种视频流格式进行分发。
抽取h264码流: ffmpeg -i mp4_sample.mp4 -vcodec copy -an -bsf:v h264_mp4toannexb raw.h264 其中: -i是输入文件名 -vcodec copy是指直接解复用,不解码,copy到目的文件 -an audio none,禁用音频文件 -bsf:v h264_mp4toannexb mp4有两种startCode模式,这里用annexb模式
视频流的传输一定涉及到视频帧的获取,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,判断设备是否支持可以编辑配置码流索引,尝试播放。
字节码解析 结构 本位将详细介绍字节码的2进制结构和JVM解析2进制流的规范。 class SimpleClass{ private int i; public int get() { return i; } } 将源码编译成后,会转换成下面2进制流,通常用16进制来展示 文中斜体 ~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进制流的异常处理介绍完毕。
在之前的博文中,我们和大家分享了国标EasyGBD视频推流组件在开发过程中,实现了视频采集功能(EasyGBD搜集视频采集数据功能是如何实现的),那么同样,音频采集也是我们需要完善的地方。 AudioFormat.ENCODING_PCM_16BIT, bufferSize); 3、开始采集 mAudioRecord.startRecording(); 4、
任务重:不仅需确认学生健康码,对同住人如父母、兄弟姐妹等人双码信息也需审核确认。 基于EasyDL的 健康码行程码智能识别 让我们来拆解一下究竟需要审查健康码/行程码哪些信息? 如下图所示(选取特定省份二维码为例),健康码需要审核姓名、身份证号、日期以及健康码颜色;行程码需要审核电话号码、日期、行程码颜色以及到过的城市。 但现实中会遇到另外一个问题,大家在提交中会将健康码行程码混合。针对双码的混合图像需要使用飞桨EasyDL图像分类进行区分。 标注格式需要注意 值得提及的是,双码智能识别依赖于EasyDL多样化的功能 图像分类:可以将双码分类与颜色检测结合 物体检测:可以增加类别、以检测代替分类 文字识别:识别多种字体的文字和数字 在这一过程中可以发现飞桨
,比如说,音视频不同步的问题: 一、打算新添加RV1126多路码流功能: 1、什么是RV1126多路码流功能? RV1126多路码流指的是一个摄像头+一个麦克风同时推流到到多个地址,目前的话多路码流推流最多可以同时推到30个流地址(目前演示的是推到三个)。 . rtmp://10.0.0.88:1935/live/cz_03 2、多路码流应用场景: 在监控的时候,可以通过一个摄像头把视频数据传输到多个平台,让多个流平台能够实时监看到现场的情况。 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删除掉。 ? image.png NAL单元解码的流程为:首先从NAL单元中提取出RBSP语法结构,然后按照如图4所示的流程处理RBSP语法结构。
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格式。