小视频程序开发掌握技巧才最重要-阿里云开发者社区

开发者社区> 人工智能> 正文

小视频程序开发掌握技巧才最重要

简介: 技术不断发展,在小视频程序开发过程中,经常会遇到关于硬编解和软编解之间的选择问题。至于如何选择,根据情况才能做出选择。

为了节省储存空间,大部分视频文件在进行播放之前都会经过压缩。相反,在播放的过程中就需要进行一个反射的解压缩过程,最早这项工作是由CPU完成的,像一些普通分辨率的AVI、Rmvb等文件,绝大多数CPU都可以胜任,但是发展到现在人们开始偏向于1080p超清视频需求之后,数据解压缩的工作量翻倍增长。再加上技术不断发展,在小视频程序开发过程中,经常会遇到关于硬编解和软编解之间的选择问题。至于如何选择,根据情况才能做出选择。
1.推流编码
推荐Android4.3或以上使用硬件编码,以下使用软件编码,ios使用全硬件编码方案。
2.播放解码
Android和ios播放器大都使用软件解码方案,虽然在一定程度上牺牲功耗,但是在细节方面表现还是不错的。
3.软编码和硬编码的作用
软解码:使用CPU进行编码
硬编码:使用非CPU进行编码
u_2126834629_581972842_fm_26_gp_0_wps_
4.软编码和硬编码的比较
软编码:实现直接、简单和参数调整方便,但CPU负载较重,性能比起硬编码来说较低,软编码可以在运行时确定,低码率下的质量会比硬编码的质量要好一些。
硬编码:性能好,在低码率下质量低于软编码器,而硬编码是不能够改变的,但是部分产品在GPU硬件平台上移植了优秀的软编算法,质量基本等同于软编码。
视频编解码是一个非常消耗性能的操作,比如我们日常在用手机玩游戏时,经常会遇到手机发热发烫地问题。虽然分析了视频编解码的相关参数,但是实际情况最好的编解码效果是根据机型进行适配的。由于ios的设别类型较少,可以做到每个机型针对性的测试和优化,但是对于Android来说,就很难做到将机型进行针对性调优,再加上安卓市场每年都会推出很多机型,如果在编写代码时固定之后,就会使得后期的维护和迭代困难。
软编码是一种设计,而硬编码不过是一种具体的实现。小视频程序开发不只是需要一个软件的实现,更加需要软件能够很好的修改从而方便扩展。我们常说的对程序进一步重构,目的就在于实现对象之间的松耦合,使程序能够应对多种情况下的变化,具有一定的扩展性。硬编码和软编码只是一种表现在实际情况中的一种问题,而这种思想可以应用于多个方面。
本文声明原创,转载请注明出处。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章