首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    日常工作中的设计:耦和封装

    一、问题提出 二、优化方案 本文介绍日常工作中模块间耦,并抽象封装的一个例子。...一、问题提出 在一个嵌入式设备中,视频相关业务流程如下,DSP采集编码后,生成H264数据,然后对H264数据分别进行MP4、RTP、PS封装,封装后形成的数据进入对应的缓存队列。...录像存储是设备的主动行为,所以开机就要进行MP4封装,这个没问题;但是,实时预览和平台接入都是被动行为,RTP、PS封装是一直工作还是有任务的时候再工作?...二、优化方案 下图是优化后的流程图,变更点如下(绿色方框中的为主要变更内容): MP4、RTP、PS等码流封装模块从DSP层上移到APP层 DSP和APP之间只有一个共享的H264数据缓存队列 抽象出一个帧读取器对象...MP4封装、RTP封装、PS封装等任务由业务层按需启停,现在控制方便 如果业务扩展,DSP层不需要参与,只需要APP层修改以下几点: APP层增加一个H264转TS的视频封装模块 APP层增加

    1.1K30

    Windows平台实现毫秒级4K H264H265直播技术方案

    基于英伟达显卡硬编码(NVIDIA NVENC)的RTMP、RTSP低延迟技术方案: 4K相当于4个1080P,Windows平台软编码有些困难,特别是h265,姑且不说4K软,4K软在一些配置一般的机器都比较吃力...,基于此,大牛直播SDK(Github)实现了Windows平台特定机型硬、硬解码低延迟解决方案。...针对编码这块,我们实现了基于英伟达显卡硬编码(NVIDIA NVENC)的RTMP、RTSP低延迟技术解决方案,无论是H265还是H264 4K 30fps都能的动(以下测试截图,基于GeForce...RTMP H264 直播 RTMP推送端H264 4K硬编码配置(对应 SmartPublisherDemo.exe): RTMP播放端H264 4K硬解码效果(对应 SmartPlayer.exe)...: RTMP H264 4K 硬编解码GPU, CPU占用情况: RTMP H264 4K直播低延时效果: 总结: 从整体测试来看,英伟达硬编码(NVENC)能达到期望的效果,可以满足毫秒级低延时大分辨率需求

    1.6K30

    h264解码器基础学习(1)

    但是h264的出现把这个数据量降到了百分之一,2个数量级,这实在太可怕了,技术的发展真的是强大。 其实h264编解码,就是从YUV文件和h264文件中相互转化的过程。...二、基础知识: 2.1 为什么h264可以压缩: 本来没打算写这些,聊到这里感觉避不过去,就简单聊两句。 为什么h264可以实现压缩?...在我们的物理世界中,图像一般都是连续的,而且现在的帧率一般足够高,导致前后帧同一个位置的图像一般不会出现大的变化,这样前后帧的图像就有很多的相同之处,H264在编码的时候只需要去那些少量不同的地方就行了...假设原始码流中有 0x00 00 03 02, 在编码时,会被替换防竞争码, 变成 0x00 00 03 03 02,这样,在解码的时候,依然可以原样的回来,就不会出错了。...3.5 获取SODB: 视频在编码时,是按照bit来的,这样可能导致编出来的SODB码流长度不是整byte的。

    58320

    只有JS基础扎实的攻城狮,才得出的“密码”

    以上知识均为前端开发必备的基础JS知识。 上面的太简单?! 感觉上面的题目太easy?那,一起来揭开这个“尘封”已久的秘密吧!...备注:该题目为HTML5学堂(码匠)设计制作的,并非行内面试题,设计该题目的主要目的有二,其一是希望大家可以利用该问题检测一下自己的JS基础知识掌握情况,其二则是为JS基础知识带来一定的趣味性。...谜题 主要涉及JS方面的基础语法知识,那么,如下的这个题目,到底会打印出什么样的结果呢?(由于代码长度较大,把部分结构标签合并到了同一行,另,以纵向形式显示,请横屏查看!) ?...Tips:如果在解密过程中,遇到了一些问题,或卡壳,可以参照谜题提示,在后面给出了谜题主要涉及到的JS基础知识。 祝解密愉快! 谜题提示 超过170的大数,阶乘(如上代码为300!)...(不同类型已在如下列表中标注) 【必备】JS中Number数字的数值范围 【必备】Infinity进行数学运算时的运算规则 【必备】typeof数据类型检测 【较偏】ASCII码值与字符之间的转换方法

    1.2K100

    手把手教你搭建自己的 AV1 Analyzer

    以前学习ITU-T线的编解码标准的时候,边学习边会有使用到码流分析工具来协助我们理解码流内部的编码结构,比如H264的时候,我们有使用Vega H264 Analyzer,HEVC的时候,我们有使用Elecard...但是,上述的方法还是很耗时,而且坑非常多,使用Emscripten的时候,附带的工具对版本都有要求,就这个玩意耗了我4天的时间。...然后我们做这些工作的初衷是为了得到Javascript版本的解码器,意思就是说有了这个解码器,我拿到哪都是可以用的,所以我们就直接白嫖官方自己制作的解码器文件就好了,哈哈,虽然耗费四天是编出来了,但是最后才看到可以...我们一共需要两个文件,由inspect.js和inspect.wasm文件组成。...你直接下载下来的inspect.js文件是不能直接用的!!,需要修改里面的一项内容。

    1.1K30

    企鹅电竞直播关键技术大揭秘

    /软、硬/硬 软编码/软解码:使用CPU进行软编码/软解码,实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点。...H264/H265编码协议 常采用视频编码标准为:H264和H265,相比H.264,H.265能在有限带宽下传输更高质量的网络视频,也就是说只需原先H.264编码的一半带宽即可传输相同质量的视频,目前企鹅电竞推流和播放端都有采用...H264和H265编码技术。...有权限的主播触发开播操作后,申请推流地址,只有申请成功才能推流; 第三步:音视频数据采集:除IOS端采用系统的录屏方案外,android和PC端均采用腾讯云sdk的屏幕录制方案; 第四步:音视频编码:对采集的音频进行硬或软编码...根据不同的封装格式(如FLV、TS)复用(demux); S4. 分别得到已编码的H.264视频数据和AAC音频数据; S5.

    5.1K30

    JavaScript 编程精 中文第三版 二十、Node.js

    二十、Node.js 原文:Node.js 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精(第 2 版)》 A student...Node 命令 在系统中安装完 Node.js 后,Node.js 会提供一个名为node的程序,该程序用于执行 JavaScript 文件。...因此若你访问从文件/tmp/robot/robot.js访问"./graph",Node 会尝试加载文件/tmp/robot/graph.js。....js扩展名可能会被忽略,如果这样的文件存在,Node 会添加它。 如果所需的路径指向一个目录,则 Node 将尝试加载该目录中名为index.js的文件。...由于 Node.js 将文件视为 CommonJS 模块,因此main.js可以从reverse.js获取导出的reverse函数。 我们可以看到我们的工具执行结果如下所示。

    2.1K40

    「音视频直播技术」Android下视频H264编码

    目前视频缩码最常用的是 H264。其它的还有 H265,VP8, VP9等,但用的人还比较少,以后可以专门写一篇文章对他们做些介绍和对比。 编码结构与方式 下图是视频编码的结构,结构很清楚。 ?...编码结构图 在Android系统下视频编码有硬和软两种方式。顾名思义,硬是通过手机提供的硬件模块进行编码;软就是通过软件程序进行编码。硬的好处是编码快,不占用CPU资源。...软正好与硬相反,它的优点是无论什么机型都一样处理。缺点则是占用大量CPU资源。我们今天介绍的是硬件编码。...构造H264编码器,将编码器的 Surface 与 EGL环境关联。 .........构造H264编码器 构造H264编码器实际就是设置编码器的媒体类型、宽高、帧率、GOF等。

    1.7K20

    看前端如何通过WebAssembly实现播放器预览能力

    但注意浏览器一般只能解析MP4/WebM的格式, H264/VP8编解码的视频。如果不是指定格式,要先复用在利用MSE来实现。...disable-everything \     --enable-protocol=file \     --enable-demuxer=mpegts \     --enable-decoder=h264...这里我只是需要H264的视频编解码。 libavformat:多路复用(demux)和多路复用(mux)。这里我3需要复用ts文件的格式、即mpegts。...封装API 这里参考了网上一些现成的做法,虽然可以生成ffmpeg.js和ffpmeg.wasm,并提供Module对象来操控,但是这样JS的数据类型和C的数据类型差异比较多,频繁地调C的API,让数据传来传去比较麻烦...由于我们只需要复用mpegts和h624decoder,编译wasm大小2.6MB左右。主要受限于加载分片的网络耗时,从hover进度条到预览图展示约在1.1秒左右,wasm帧耗时60ms以内。

    2.3K10
    领券