首页 文章 精选 留言 我的

精选列表

搜索[OCR引擎],共10000篇文章
优秀的个人博客,低调大师

音视频引擎/音视频即时通讯

其技术亮点之一“透明通道” “透明通道”顾名思义就是AnyChat SDK为上层应用提供的一个传输数据的通道,由于AnyChat SDK并不关心所传输的内容,即所传输的数据相对于SDK来说是“透明”的,便称为“透明通道”。上层应用可以利用SDK提供的透明通道来扩展业务,传输的内容没有限制,可以为任意数据类型缓冲区,单次传输大小限制为1000字节,如可以利用透明通道传输业务上自定义的指令,接收方收到数据后,会产生透明通道数据回调,在回调函数里面进行指令的解析,并进行对应的业务逻辑处理。V2.8.7之前的版本,只能在当前房间内的任意两个用户间,或是向房间内的所有用户广播数据。自2.8.7版本开始,便可以在两个成功登录的用户之间,用透明通道接口传输自定义的数据,每次传输数据的大小为1000字节,如果自己在房间里面,还可以利用透明通道向房间的所有用户广播数据。如果在房间中任意两个用户间需要传输大量的缓冲区数据,则可使用扩展接口SDK内部会自动完成对大缓冲区的分包、组包、校验工作。 其技术亮点之二“集成第三方编解码器” AnyChat Platform Core SDK支持加载外部音视频的编码、解码模块(简称AnyChat Codec库),增强系统的可扩展性,同时也满足一些特定应用环境的特殊需求,如与特定的硬件平台(android、pad)集成时,可以调用硬件编解码器,实现更高效率的即时通讯应用。AnyChat Platform Core SDK内核已经实现了部分常用的音视频编码、解码模块,如H.264视频编码、解码算法,ARM-WB、AAC、SPEEX、CELT等音频编码、解码算法。上层应用可以自己定义新的音视频编码、解码算法,在AnyChat平台初始化时,通过相关API接口可以加载新的编码、解码模块,同时上层应用也可以重新实现SDK内置的编码、解码算法,在AnyChat平台初始化时,发现加载的音视频编码、解码算法与内置的算法相同,则会采用上层应用提供的相关算法来替代内核的算法。单个音视频编码、解码模块(AnyChat Codec库)最多可以同时包含:一个音频编码器,一个音频解码器,一个视频编码器以及一个视频解码器。当上层应用需要实现多个编码器,或是多个解码器时,可以在多个库中分别实现,然后分别向AnyChat内核进行注册。AnyChat Platform Core SDK根据预先定义的CODEC编号(CodecId)来区分不同的CODEC,当用户需要实现的CODEC不在已定义的CODEC列表中时,可以自行定义新的CODEC编号,当AnyChat内核收到采用新的CODEC编码的数据时,会根据CODEC编号查询已注册的新解码器,然后调用新的CODEC进行解码。当上层应用实现的CODEC编号与AnyChat内核预置的CODEC相同时,且输入(或输出)为标准码流时,可以与AnyChat内置CODEC同步工作(如采用AnyChat Codec库进行编码,用AnyChat内置库进行解码)。当上层应用实现的CODEC编号不存在于AnyChat内置CODEC列表中时,需要在编码端、解码端同时注册新的CODEC,否则将会出现解码失败的情况。 其技术亮点之三“支持Android硬件加速” AnyChat for Android SDK V1.3 正式支持Android硬件加速,启用硬件加速之后,内核将调用Android平台内置的硬件编码、硬件解码模块(CODEC),实现高清晰度的音视频通话。AnyChat for Android SDK内置软件编码、解码库,受限于android平台CPU运算能力,对于高分辨率、高帧率的视频通信效率较低,这时就需要采用硬件加速,通常Android平台的硬件都内置硬件加速芯片,通过硬件加速可以降低对CPU的要求,提高实时性。AnyChat for Android SDK默认采用内置软件编解码库,如需启用硬件加速则需要进行设置,示例代码如下(初始化成功之后调用): 1.// 平台硬件编码设置 2.intuseHardwareCodec = 1; 3.anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEHWCODEC, useHardwareCodec); AnyChat内核会自动探测当前android平台所支持的硬件加速类型(编码、解码)并自动加载,并在日志中输出相关信息,包括编解码器类型、名称等,如下所示: 1.Load codec libmediahwcodec_2.2.so success 2.Load video encodec success!(id:1,name:OMX.Nvidia.h264.encoder) 3.Load video decodec success!(id:1,name:OMX.Nvidia.h264.decode) Android平台下正常启用硬件加速的条件是:1、硬件平台具备硬件加速芯片;2、硬件厂家提供相关驱动并加载到Android操作系统内核中(符合OMX标准,如不符合,则需要硬件厂家提供相关技术支持)。默认情况下,Android 2.2内核硬件加速不支持设置码率(默认1Mbps),Android 2.3、Android 4.0等平台支持设置硬件加速编码的目标码率、帧率、关键帧间隔等参数,所以在Android 2.3以上的版本上启用硬件加速将会获得理想的效果。如果所使用的Android平台具备硬件加速芯片,但不支持标准的硬件加速接口,则需要硬件厂家提供相关的api接口,然后采用 AnyChat集成第三方编解码器 技术,便可实现非标准的硬件加速功能。 其跨平台特性也是其与众不同的亮点之一,已支持Windows、Unix、Linux(x86、ARM)、Mobile、Android、iPhone平台等,目前正在做WP7平台的移植。利用AnyChat SDK的跨平台特性,可以实现嵌入式硬件设备(ARM平台)与Internet上的Windows平台实现语音、视频的交互。如果企业的平台目前,或是今后需要实现跨平台的特性,则AnyChat SDK将是不二的选择。产品的跨平台特性,操作系统的多重选择,将使企业的应用领域更加的广阔。 本文转自 fanxiaojun 51CTO博客,原文链接:http://blog.51cto.com/2343338/987179,如需转载请自行联系原作者

优秀的个人博客,低调大师

HPE升级Integrity服务器采用最新安腾引擎

HPE将推出新一代的关键业务型Integrity/HP-UX服务器,提供了一个Linux容器向x86服务器的迁移路线。 Integrity i6代表了Integrity服务器产品线的整体升级,它采用英特尔安腾9700系列处理器,也就是大家熟知的Kittson产品线。 这些服务器也升级增加了内存容量。 我们得知,最新升级的HP-UX* 11i v3 2017将在6月发布,支持最新的3PAR存储,意味着包括全闪存阵列。 HPE称Integrity i6和升级的HP-UX提供了: 更好的总拥有成本 相比Integrity i2服务器,数据库支持和许可成本最多减少了50% 增强了系统性能 改善了系统可用性、数据管理和安全性 HPE专注于提高Integrity服务器产品线的寿命,一位亚太区的OEM合作伙伴在引言中称:“新一代服务器让我们能够为我们的客户持续提供HPE Integrity服务器一直到2025年。” 此外,Integrity/HP-UX服务器未来还将集成NVMe技术。HPE还表示,客户每年都将获得软件更新和支持,至少到2025年。 迁移选择 未来HPE将让客户可以把HP-UX工作负载迁移到运行在x86服务器上的Linux容器,并强调这将是非常快速的。 HPE表示,客户可以选择把工作负载保留在Integrity/HP-UX,获得最高性能,或者转移到容器化的/x86 HP-UX环境(猜测性能会略低)。 评论 很多人将会看到x86 Linux容器重新发布的公告,因为HPE似乎默认了安腾处理器开发(似乎)不可避免地终结的情况,在Kittson之后英特尔再无硬件升级。我们预计到2025年,x86服务器将采用永久性内存,和新一代通信架构例如Gen Z,预计还会采用Icelake(v8)和Tigerlake(v9)之后的至强处理器。 永久内存、下一代架构和升级的至强处理器,所有这些再加上到时候英特尔回味卸载处理器提供花哨的SoC,这肯定会推动标准x86服务器性能超越i6安腾服务器。如果这种服务器部署了之后可以提供与安腾同等的可靠性、可用性和安全性,那么使用Linux容器迁移路线就变成一件自然而然的事情了。 HPE此举表明了一种成熟度和现实情况,让安腾客户对未来感到舒适一些。 本文作者:佚名 来源:51CTO

优秀的个人博客,低调大师

S4分布式流计算引擎

背景 最近花了点时间研究了下分布式计算这一块的内容。领导给的第一个任务,就是学习下S4和GridGain。花了几天的时间把s4的源码看了下,把自己的理解和学习的内容做一个记录。 下一篇会是GridGain的分享 学习 s4的论文:S4: Distributed Stream Computing Platform s4的官网:http://s4.io/ s4是什么? 1. s4的全称 : Simple Scalable Streaming System (简单的描述:分布式流计算系统) 2. 特点: distributed(分布式) scalable(扩展性) partially fault-toleran(部分容错性) pluggable (可插拔) 3. 产生的原因: Yahoo发起,主要用于解决"cost-per-click“广告,通过实时计算预测用户对广告的可能的点击行为。 不用hadoop的原因: hadoop主要解决batch处理,基于mapReduce对可控的数据的进行处理。而流计算是针对不可控的点击事件,对实时性有严格要求。 4. 适用的场景: 业务允许部分容错性。 (s4没有严格的failover机制,运行节点突然crash时,会导致当前节点中的数据丢失。后续的请求会failover到其他的节点上) S4的设计: 容器概念(http://docs.s4.io/manual/overview.html) PE : Processing Elements (处理节点) * emit one or more events which may be consumed by other PEs, * publish results, possibly to an external data store or consumer. Events : message (消息) * arbitrary Java Objects * passed between PEs. (send and receive) PEC : processing element container (处理节点容器) * invokes the appropriate PEs in the appropriate order node :a Processing Endpoint (机器节点) *a jvm instance * contains a PEC cluster:a groupnodes (节点集群) 说明: 一个cluster包含多个node 每个node包含一个PE Container 每个PE Container 包含多个PE 每个PE消费Events,生成新的Events并传递给下一个PE 总体结构图: PE Container/PE EventListenter Dispatcher, EventEmitter Communcation PE内部概念:(4个部分组成) its functionality as defined by a PE class and associated configuration, the named stream that it consumes, the keyed attribute in those events, and the value of the keyed attribute in events which it consumers PE类关系图: 说明: Persister : 每个PE对应一个Persister,s4中每个PE对应于一个key的value结果。每个value结构都将作为PE的一个instance FrequenceType : 每个PE会定期进行flush output输出,可选择的策略(定时,数量阀值) Clock : 每个PE的时间控制单元,有几种时间。(WallClock:基于系统时间处理, EventClock:基于event事件时间控制) 重点理解一下: Keyless PE概念和PE Prototype PE在底层实现了会以多实例存在。存储的key即为其keyed对应的value值,内部有个lookupTable概念。 针对Keyless PE,其对应的存储key即为"*",所以每次通过lookupTable.get(value)返回的即为同一个节点,单例化 针对prototype,其对应的存储就为其value,所以每次会根据当前keyed attribute确定返回的PE节点,基于这点可以实现PE节点数据的Join处理 EventListener/EventEmitter: 说明: 每个PE Container是一个EventProducer,使用CommLayerListener做为其事件处理器,处理EventWrapper反序列化。 每个PE包含一个Dispatcher,Dispatcher里包含了一个EventEmitter处理对应的EventWrapper对象的发送 底层实际通讯的类: SenderProcess/ListenerProcess Dispatcher类关系图: 说明: Partitioner, 每个dispatcher针对发送的目标cluster,会根据对应的key进行分区处理,路由到其中的node节点。(node节点的信息可以通过zookeeper进行动态管理) 考虑集群node节点的管理(node的新增 or 修改) 说明: ProcessMonitor 监控当前运行node节点的状态,有static/dymaic两种维护状态 TaskManager 创建node节点,主要是设置lock文件,有static/dymaic两种维护状态 运行(PE状态变化) S4缺点: S4产品还是一个半成品,整体代码结构组织和风格上还是比较乱的,选择使用时需谨慎。存在的一些问题: failover (运行node节点出现crash,当前node上的PE数据将无法实施failover) persist (目前支持方式过于简单,需要考虑网络持久化,类似于nfs,分布式文件系统等,配合failover机制) communication (只支持udp协议,数据传输可靠性上) load balancer (根据系统负载进行智能LB,目前暂时未看到相关实现。系统运行分为两种模式static or dymaic模式, static不存在智能调节LB处理) deploy (手工方式介入deploy,无法支持apps的zero deploy模式。系统分为cluster/node两概念,node对应于一计算节点实例,cluster为一组处理相同业务的计算节点)

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册