小视频程序开发掌握技巧才最重要
为了节省储存空间,大部分视频文件在进行播放之前都会经过压缩。相反,在播放的过程中就需要进行一个反射的解压缩过程,最早这项工作是由CPU完成的,像一些普通分辨率的AVI、Rmvb等文件,绝大多数CPU都可以胜任,但是发展到现在人们开始偏向于1080p超清视频需求之后,数据解压缩的工作量翻倍增长。再加上技术不断发展,在小视频程序开发过程中,经常会遇到关于硬编解和软编解之间的选择问题。至于如何选择,根据情况才能做出选择。
1.推流编码
推荐Android4.3或以上使用硬件编码,以下使用软件编码,ios使用全硬件编码方案。
2.播放解码
Android和ios播放器大都使用软件解码方案,虽然在一定程度上牺牲功耗,但是在细节方面表现还是不错的。
3.软编码和硬编码的作用
软解码:使用CPU进行编码
硬编码:使用非CPU进行编码
4.软编码和硬编码的比较
软编码:实现直接、简单和参数调整方便,但CPU负载较重,性能比起硬编码来说较低,软编码可以在运行时确定,低码率下的质量会比硬编码的质量要好一些。
硬编码:性能好,在低码率下质量低于软编码器,而硬编码是不能够改变的,但是部分产品在GPU硬件平台上移植了优秀的软编算法,质量基本等同于软编码。
视频编解码是一个非常消耗性能的操作,比如我们日常在用手机玩游戏时,经常会遇到手机发热发烫地问题。虽然分析了视频编解码的相关参数,但是实际情况最好的编解码效果是根据机型进行适配的。由于ios的设别类型较少,可以做到每个机型针对性的测试和优化,但是对于Android来说,就很难做到将机型进行针对性调优,再加上安卓市场每年都会推出很多机型,如果在编写代码时固定之后,就会使得后期的维护和迭代困难。
软编码是一种设计,而硬编码不过是一种具体的实现。小视频程序开发不只是需要一个软件的实现,更加需要软件能够很好的修改从而方便扩展。我们常说的对程序进一步重构,目的就在于实现对象之间的松耦合,使程序能够应对多种情况下的变化,具有一定的扩展性。硬编码和软编码只是一种表现在实际情况中的一种问题,而这种思想可以应用于多个方面。
本文声明原创,转载请注明出处。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云服务器是什么/阿里云服务器是干嘛用的
今天来一堂阿里云服务器的普及课程,和新手说一下阿里云服务器是什么。 打个比方云服务器机房就是一座大楼,里面用隔断分离出了很多小空间,每个小空间就是你租用的云服务器。现在这个隔断可以根据需要调整大小,比如你刚入驻的时候使用资源较少,后来随着发展越来越大就可以付费增加隔断的面积。原理就是这样,实际上云服务器比这个要复杂的多。 在现实中通过技术手段把几万台服务器集群连成一个整体的总服务器,再通过技术手段将这个总服务器进行拆分,变成一个个小的隔断,根据用户需求情况进行灵活分配。同时这每一个隔断彼此独立,坏任何一个也不影响其他隔断的正常使用。同时每个隔断都有备份及多个备份。如果你那块坏了系统会自动用备份还原,保证你隔断的可用性。 市面上常见的云服务器服务商一般有两种情况,第一种是某宝上见到的那种,号称自己提供云服务器,其实就是用虚拟软件把一台硬件服务器划分为多个隔断,然后出售,但是为了谋利大部分都会有超售行为;另一种是真正意义上的云服务器,BAT 那种巨头级别互联网公司用海量服务器来运行自身的业务,同时他们顺手做了云服务器。因为到了他们那种几万台服务器集群的规模,成本已经很低了。他们建云服务器可...
- 下一篇
http请求使用代理,nginx 400 bad request
事件: 公司的安卓app部分接口使用抓包工具时,如Charles。 返回400错误。 后端使用nginx服务,php语言。 分析问题: 1、安卓不使用抓包工具,可以正常请求接口数据 2、nginx同时对android、ios提供服务,ios正常 3、安卓只有使用代理工具,才会出现400 有此可见, 问题出在代理工具上。 为什么ios使用同一个代理工具没有问题? 百度、google说 由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。 又有文章说,http cookie值太大,http头部信息错误等 然后按照网上的方法修改了请求数据和nginx缓存配置,nginx依旧无情的返回400,网上的解决方案基本上都试过了,依旧没有解决问题。将接口的Url放在firefox里访问,可以正常请求。那会不会是代理工具做转发时修改了http请求的信息? web代理工具的原理: 一般的代理工具是将本地客户端的请求先发送给代理,然后由代理向服务器发送请求,代理接收到服务器回复后,将其再转发给客户端。 这么来看,很有可能是代理工具在做http转发时,修改了请求信息。 api的访问方式...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度