(转载)短视频app开发之ios小视频开发经验共享
移动端相比起PC端的优势除了它便携以外,还有一个比较明显的优势就是可以通过手机快速方便的创造各种多媒体作品。比如照片分享、视频录制等,目前大部分市面上的手机APP都存在这些功能。短视频行业之所以如此火爆,就是因为它将手机的视频录制和碎片化时间这两个特点都发挥到了极致,短视频app开发业务也随之变得被大众熟知起来。本文主要给大家分享一下ios端的开发经验。
一、视频编码
短视频app中如果不进行视频编码的话,数据量就会非常大,造成存储和传输困难,所以视频文件通常都需要在录制完成之后进行编码。视频编码主要从两个维度进行数据压缩:
1. 单张图像某一区域相邻像素相似,比如一片红色只记录红色色值和区域,不用记录这个区域的每一个像素点。
2. 相邻图像之间内容相似,因为相邻两帧要制造连续的效果,所以两帧之间的内容一般非常接近,目前主流的视频编码技术都是用图像编码方法对第一帧进行编码。
二、视频格式
视频的封装格式主要有MP4、MOV、AVI、RMVB等,除了RMVB以外,其它格式内封装的视频编码格式都是采取H.264的编码标准,这也是最常用的编码标准,压缩效率比MPEG-2提升了一倍多。但是相反,H.264的解码难度提高了3倍。
三、视频码率
通常,视频文件的大小/视频的时长即定义为码率。码率和分辨率与视频质量之间的关系可以理解为以下几点:
1.码率可以理解为取样率,单位时间内取样率越大,精度就越高,同时体积也越大。
2.当视频没有经过编码时,如果分辨率越高,那么视频图像的细节越清晰。
3.但如果视频经过编码,被限制在一定码率内,编码器就必须舍弃掉一部分细节。
所以分辨率和码率都与视频的清晰度有关。
四、视频质量
纯粹的视频(不包括音频)实质上就是一组帧图片,经过视频编码成为视频文件再把音频文件和字幕文件组装在一起成为我们看到的视频文件。1秒内出现的图片数就是帧率,图片间隔越小画面就越流畅,所以帧率越高效果就越好,需要的存储空间也就越多。
五、软解码和硬解码
H.264的视频解码给CPU造成了很大负担,所以通常会把这部分工作交给更善于进行处理简单工作但是数据量较大的GPU。
1.GPU解码就是所谓的硬解码
2.CPU解码就是软解码。
3.iOS提供的播放器类使用的是硬解码,所以视频播放对CPU不会有很大的压力,但是支持的播放格式比较单一。
以上就是在短视频app开发过程中,ios端的相关经验分享。希望能给正在开发的朋友们提供一定的参考和帮助。
阅读原文:https://blog.csdn.net/q3557873521/article/details/86612252