首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RTSP/RTMP直播相关

    Android平台GB28181设备接入模块之按需编码和编码

    此外,考虑到设备侧的上行带宽瓶颈,一般来说,本地录像需要尽可能清晰(比如1920*1080分辨率),上传视频数据,传输1280*720分辨率,也就是我们传统意义提到的编码。 publisherHandle, 1, echo_cancel_delay); libPublisher.SmartPublisherSaveImageFlag(publisherHandle, 1); }编码以采集摄像头采集为例 ,如果需要编码,采集数据源时,以大分辨率作为采集基准分辨率,如采集1920*1080的,那么如果需要上传实时视频数据的时候,只需要缩放,得到1280*720分辨率的编码数据: @Override 接口参数第一个是实例句柄,如果需要两路编码,势必对应两个推送实例,也就是两个handle,一个用来录像,一个用来gb28181上行数据推送。 isGB28181StreamRunning) { releasePublisherHandle(); } }技术总结按需编码,可以只是本地录像或上行数据推送,对应一个实例完成,如果编码

    74700编辑于 2023-07-25
  • 来自专栏RTSP/RTMP直播相关

    Android平台GB28181设备接入模块如何实现实时视频和本地录像编码

    ​技术背景我们在做Android平台GB28181设备接入模块的时候,遇到这样的场景,比如执法记录仪或智慧工地等场景下,由于GB28181设备接入模块,注册到国标平台后,平时只是心跳保持,或还有实时位置订阅 网络环境并不是太好,所以,催生了这样一个诉求:部分开发者希望能本地录像的时候,录制高分辨率(比如1920*1080),国标平台侧发起实时视频查看请求的时候,上传低分辨率(如1280*720)数据,有点类似于IPC的主和子 国标平台侧发起视频请求后,Android平台GB28181设备接入模块的处理如下: @Override public void ntsOnInvitePlay(String deviceId } destoryRTPSender(); Log.e(TAG, "Failed to start GB28181 "); } } } } }技术总结需要注意的是,如果需要实现两路不同分辨率的编码,那么需要GB28181

    80660编辑于 2023-05-23
  • 来自专栏君正T31开发实战指南

    君正T31应用开发8:获取JEPG

    2.1:sample_get_jpeg_snap获取截图的。 IMP_Encoder_GetStream:对于H264和H265类型,一次调用成功获取一帧的,这帧可能包含多个包。 对于JPEG类型,一次调用成功获取一帧的,这帧只包含一个包,这一帧包含了JPEG图片文件的完整信息。 IMP_Encoder_ReleaseStream用户获取码后必须及时释放已经获取的缓存,否则可能会导致buffer满,影响编码器编码。 ,所以demo得实验情况也是得到两张图片,一张是主的图像,一张是子的图像。

    2.1K31编辑于 2023-06-11
  • 来自专栏小数志

    图说“”大学

    现已将“211工程”和“985工程”等重点建设项目统筹为“”建设。 注:本文所有数据均来源于网络。 00 何为“”? ? 从分布上看,整体还是主要分布于东部和中部省份,新疆大学和云南大学的加入“点亮”了西北和西南好大学序列,也算是国家教育发展的一个战略性举措,高校最多的是北京(8所),其次是上海(4所)。 03 国内“”高校分布 ? 04 国内“”高校专业分布 ? 为了进一步精准描绘国内高校的质量情况,我们区分统计各高校一学科的数量后再次绘制分布地图。 能够看到,“”是瞄着世界一大学和学科的标准在建设,但距离真正的世界一还有很长的路要走。

    1.1K10发布于 2020-03-31
  • 来自专栏呱牛笔记

    WVP GB28181服务器取视频

    mediaServerItem.isRtpEnable()) { logger.warn("[点播] 单端口收时不支持TCP主动方式收 deviceId: {},channelId TCP主动方式收"); } 修改后: if (device ! mediaServerItem.isRtpEnable()) { logger.warn("[点播] 单端口收时不支持TCP主动方式收 deviceId: {},channelId TCP主动方式收"); } 终于是看到视频了,下一步,继续分析源代码。 从ZLM查看到的日志:WVP向zlm申请了一个rtp的端口,然后将这个端口转发给了国标摄像头,然后zlm接收到推后,通知到WVP,界面显示刷新。

    1.2K10编辑于 2024-02-07
  • 来自专栏视频流媒体

    RTSPServer接收RTSP推RTSP推流转GB28181输出级联GB28181国标平台

    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输出级联接入到国标平台

    2.4K10编辑于 2022-07-27
  • 来自专栏嵌入式、安防、流媒体、AI分析

    视频监控平台GB28181:媒体保活机制

    前言 目前实际项目对接遇见很多平台级联过程中,视频有类似rtsp一样的rtcp保活机制,随翻看国标GB28181-2016协议文档,查阅相关说明,现分享如下。 协议原文 平台、设备媒体保活机制 贴张协议文档规范截图 见解 根据协议描述中介绍,国标暂未规定视频的rtcp保活,这块还是各个视频厂家自己定义的保活手段,如遇见rtcp保活手段的方式,可参考rtsp

    1.2K20编辑于 2023-01-04
  • 来自专栏EasyNVR

    监控视频中的主和子是什么意思?

    高清网络摄像机产品编码器都会产生两个编码格式,称为主和子,这就叫技术。目的是用于解决监控录像的本地存储和网络传输的图像的质量问题。 ? ? 能实现本地和远程传输的两种不同的带宽需求,本地传输可以用主,能获得更清晰的存储录像,远程传输就因为带宽限制的原因,而使用子流来获得流畅的图像和录像。 当一路视频进入录像机后,录像机可以编码提供了主和子两种,主流用来本地录像,子流用来网络传输。默认是录像机本地访问,自动主显示。远程访问自动子显示。 ? 主一般较大,清晰度高,占用的带宽也就高。子,在主的图像环境下降低了图像格式,清晰度较主要低,占用带宽小。主一般用于存储,子流用于网传。 视频直播点播流媒体服务器可以进行视频直播/录像/回放,在取的时候可以根据自己的需要来取,可以是主,也可以是子。 ?

    8.4K50发布于 2020-05-19
  • 来自专栏TSINGSEE青犀视频

    EasyCVR平台中如何通过接口调用切换HIKSDK主子

    我们在往期的文章中分享过关于主子的技术文章,TSINGSEE青犀视频的平台也可支持,以及主子的自由切换。关于主子,一般来说,主较大但清晰度高,占用的带宽也较高。 子的清晰度与主相比,要稍低一些,但是占用带宽小。所以一般来说,主流用于本地存储,能获得更清晰的存储录像,子则适用于在低带宽网络上传输,节省带宽。 EasyCVR平台目前除了GB28181协议和RTMP推以外,其他接入的协议都可以在Web页面上切换主子(选择1则是主,选择2则是子)。 如果是手机则可以通过调取子流进行观看,PC端则调用主。 今天我们就来分享下如何通过接口调用实现HIKSDK主子的切换。 ,平台能支持主流标准协议如GB28181、RTSP/Onvif、RTMP等,还能支持厂家的私有协议与SDK接入,比如海康Ehome、海康SDK、大华SDK等,可分发RTSP、FLV、HLS、WebRTC

    65910编辑于 2022-04-28
  • 来自专栏TSINGSEE青犀视频

    国标GB28181协议EasyGBS视频平台新增全局主子流配置

    EasyGBS是基于国标GB28181协议的视频云服务平台,它可以支持国标协议的设备接入,实现视频的转码与分发,能够为大数据平台的搭建提供视频能力支持。 EasyGBS能够将监控视频实现网页无插件直播,这其中运用到了主子的配置。一边是从摄像机取,一边是转换协议之后进行分发。 能实现本地和远程传输的两种不同的带宽需求,本地传输可以用主,能获得更清晰的存储录像,远程传输就因为带宽限制的原因,而使用子流来获得流畅的图像和录像。 EasyGBS可以进行视频直播/录像/回放,在取的时候用户可以根据自己的需要来取,可以是主,也可以是子。 EasyGBS支持将GB28181设备/平台推送的PS流转成ES,并提供RTSP、RTMP、FLV、HLS、Webrtc等多种视频格式进行分发。

    78620编辑于 2022-03-09
  • 来自专栏TSINGSEE青犀视频

    国标GB28181协议平台EasyGBS视频推组件EasyGBD如何提高推帧率?

    视频的传输一定涉及到视频帧的获取,TSINGSEE青犀视频开发的平台比如EasyNVR、EasyGBS等观看视频的时候,1S会产生一个关键帧,是否流畅就跟视频帧有很大关系。 国标GB28181协议视频推组件EasyGBD内的默认帧率是20,那么我们如何提高EasyGBD的推帧率? millisPerFrame = 1000 / 30; x264.create(width, height, 30, bitrate/1000); EasyGBD是GB/T28181 Device的简称,是国标GB28181

    1.7K20发布于 2021-01-29
  • 来自专栏视频流媒体

    LiveGBS国标GBT28181流媒体平台支持主子切换主streamstreamprofile

    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,判断设备是否支持可以编辑配置索引,尝试播放。

    1.1K10编辑于 2022-08-02
  • 来自专栏Java旅途

    Java8——Stream

    = new ArrayList<>(); 4 Stream<String> stringStream = list.stream(); 5} 通过Arrays中的静态方法stream()获取数组。 若不足n个,则返回一个空。 ) 12 .map(Person::getName) 13 .forEach(System.out::println); 14} flatMap——接收一个函数作为参数,将中的每个值都换成另一个 ,然后把所有生成一个。 .findFirst(); 9 System.out.println(b.get()); 10} findAny——返回当前中的任意元素 1@Test 2void test15(){ 3

    64720发布于 2020-07-16
  • 来自专栏小小码农一个。

    Java8并行

    而 Java8 为我们提供了并行,可以一键开启并行模式。是不是很酷呢?让我们来看看。 并行 认识和开启并行 什么是并行:并行就是将一个的内容分成多个数据块,并用不同的线程分别处理每个不同数据块的。 当然也可以通过 stream.parallel() 将普通流转换成并行。并行也能通过 sequential() 方法转换为顺序。 并行可以随便用吗? 对于较少的数据量,不建议使用并行 容易拆分成块的数据,建议使用并行 以下是一些常见的集合框架对应的可拆分性能表 以下是一些常见的集合框架对应的可拆分性能表:

    93330发布于 2020-12-18
  • 来自专栏Java成神之路

    Java8_03_

    一、前言 这一节我们来看下Java8的又一新特性:。 本节主要包括以下内容: 的相关概念 使用 收集器 二、的相关概念 允许你以声明性方式处理数据集合,可以将其看成遍历数据集的高级迭代器。 可以透明地并行处理。 1. 数据处理操作 的数据处理功能支持类似于数据库的操作, 以及函数式编程语言中的常用操作, 1.2 特点 操作有两个重要的特点: 流水线 内部迭代 流水线 很多操作本身会返回一个, 这样多个操作就可以链接起来 例如, 以下代码会抛出一个异常, 说已被消费掉了: List< String> title = Arrays. asList(" Java8", "In", "Action"); Stream< String return CaloricLevel.NORMAL; else return CaloricLevel.FAT; })); 3.1 多级分组 要实现多级分组,我们可以使用一个由参数版本的

    82720编辑于 2022-03-11
  • 来自专栏网站建设、网站制作专栏

    C#8:异步

    所以说这样不是很理想,最理想的办法是使用C#的异步编程模型,但是在C# 8之前,这是做不到的。但是从C# 8开始,我们就可以这样做了。 Asynchronous Streams 异步 首先修改NumberFactory,在Task.Delay(1000)前边加上await关键字来代替.Wait()方法,然后再修改返回类型为IAsyncEnumberable <int>,并在前面添加async关键字: 回到Main方法,需要做出两个修改: 首先,就是在foreach循环前面加上await关键字,这看起来比较奇怪,但这就是我们遍历异步的方式。 在这里是异步的,当它await任务的时候,该线程是可以去做其它工作的。而当程序继续执行的时候,它确实可能结束于其它的线程。

    72710发布于 2019-11-04
  • 来自专栏JAVA

    Java 8 Stream 操作

    《Java 8 Stream 操作》 摘要 在这篇博文中,我们将深入探索Java 8的Stream API,这是一项革命性的特性,极大地改善了数据集合的处理方式。 引言 Java 8标志着Java历史上的一个重要进展,其中Stream API的引入无疑是亮点之一。 ,它会处理并产生结果。 总结 Java 8的Stream API不仅为Java开发者提供了一个强大的工具,以更简洁、更函数式的方式处理数据集合,还大幅度提高了程序的性能和可读性。 通过深入探索和扩展每个点,本文全面解析了Java 8的Stream API,旨在提供一个全方位的指南,帮助开发者更好地理解和应用这一强大的功能。

    31210编辑于 2024-11-20
  • 来自专栏余林丰

    Java8 Stream

    第三章 Stream 关注公众号(CoderBuff)回复“stream”获取《Java8 Stream编码实战》PDF完整版。 对于初学者,必须要声明一点的是,Java8中的Stream尽管被称作为“”,但它和文件、字符、字节流完全没有任何关系。Stream使程序员得以站在更高的抽象层次上对集合进行操作[1]。 也就是说Java8中新引入的Stream是针对集合的操作。 3.1 迭代 我们在使用集合时,最常用的就是迭代。 掌握集合创建就足够了。 第三个参数在这里的确没有用,这是因为我们目前所使用的Stream是串行操作,它在并行Stream中发挥的是多路合并的作用,在下一章会继续介绍并行Stream,这里就不再多做介绍。

    1.6K10发布于 2020-03-25
  • 来自专栏Java旅途

    Java8——Stream

    list = new ArrayList<>(); Stream<String> stringStream = list.stream(); } 通过Arrays中的静态方法stream()获取数组。 若不足n个,则返回一个空。 personList.stream() .map(Person::getName) .forEach(System.out::println); } flatMap——接收一个函数作为参数,将中的每个值都换成另一个 ,然后把所有生成一个。 * reduce 第一个参数是起始值 */ @Test void test16(){ List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10

    61241发布于 2020-07-14
  • 来自专栏技术墨客

    JVM与字节——2进制字节解析 原

    字节解析 结构 本位将详细介绍字节的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精度浮点 到此,2进制的异常处理介绍完毕。 总结 Jvm识别字节的过程到此介绍完毕,按照这个识别过程可以理解JVM是怎么一步一步解析字节的。

    1.4K30发布于 2018-08-15
领券