现在人们的上网习惯已经从PC端转到移动端,移动端APP的开发已经成了一个重要的开发项目,这也是对程序员的一个考验,特别是现在流行的短视频,让短视频APP开发成为重点,移动端目前有安卓和iOS两大系统,所以对于开发来说需要单独进行开发。
短视频成功的从人们碎片化的时间里找到突破口,占领了市场,在开发短视频APP时iOS端开发经常会遇到什么问题呢?今天主要分享一下iOS短视频APP开发过程中的一些经验。
短视频app中如果不进行视频编码的话,数据量就会非常大,造成存储和传输困难,所以视频文件通常都需要在录制完成之后进行编码。视频编码主要从两个维度进行数据压缩:单张图像某一区域相邻像素相似,比如一片红色只记录红色色值和区域,不用记录这个区域的每一个像素点。相邻图像之间内容相似,因为相邻两帧要制造连续的效果,所以两帧之间的内容一般非常接近,目前主流的视频编码技术都是用图像编码方法对第一帧进行编码。
视频的封装格式主要有MP4、MOV、AVI、RMVB等,除了RMVB以外,其它格式内封装的视频编码格式都是采取H.264的编码标准,这也是最常用的编码标准,压缩效率比MPEG-2提升了一倍多。但是相反,H.264的解码难度提高了3倍。
通常,视频文件的大小/视频的时长即定义为码率。码率和分辨率与视频质量之间的关系可以理解为以下几点:
1.码率可以理解为取样率,单位时间内取样率越大,精度就越高,同时体积也越大。
2.当视频没有经过编码时,如果分辨率越高,那么视频图像的细节越清晰。
3.但如果视频经过编码,被限制在一定码率内,编码器就必须舍弃掉一部分细节。
所以分辨率和码率都与视频的清晰度有关。
如果不包含音频,视频其实是一组帧图片,经过视频编码成为视频文件再把音频文件和字幕文件组装在一起成为我们看到的视频文件。1秒内出现的图片数就是帧率,图片间隔越小画面就越流畅,所以帧率越高效果就越好,需要的存储空间也就越多。
软解码和硬解码问题:H.264的视频解码给CPU造成了很大负担,所以通常会把这部分工作交给更善于进行处理简单工作但是数据量较大的GPU。GPU解码就是所谓的硬解码;CPU解码就是软解码;iOS提供的播放器类使用的是硬解码,所以视频播放对CPU不会有很大的压力,但是支持的播放格式比较单一。
一个APP的出现绝对是经过设计,开发以及测试之后才会出现在大众面前,看似简单的一个短视频APP其实需要多个部门相互配合才能出来,如果人力方面不足,小编建议还是找服务商开发,最省时省心,以上就是关于短视频APP开发过程中iOS端的一些经验分享,有更多关于直播、短视频、社交APP的问题,欢迎大家留言,我们一起讨论。



