iOS 视频图像高级iOS Develop

关于iOS的视频压缩的浅陋见解

2017-06-20  本文已影响196人  Aiana

/*

视频的三要素:码率、帧率、分辨率 https://sanwen8.cn/p/101uMot.html

苹果封装好的视频压缩技术属于:硬编码,效率高、实现简单,但是用户不能自定义压缩,只有几种压缩方案

采用苹果的压缩技术压缩出来的视频是无法达到:即小又清晰的效果

要想做到类似微信、秒拍那样的压缩效果,暂时只 知道两种方法:

1、采用苹果压缩+后台压缩

特点:实现简单、节约开发时间、消耗网络资源(用户提交“半压缩”的视频到后台,需要时间)

可行性:由于ffmpeg是开源的,后台很容易找到ffmpeg压缩的demo,实现简单。iOS端很难找到ffmpeg视频压缩的demo,实现困难

2、采用ffmpeg软编码,自定义视频的三要素实现压缩

特点:实现复杂、压缩时间长、压缩的视频质量高、可自定义、不需要后台二次压缩、工程包过大

可行性:除iOS端其他都很好找到ffmpeg的压缩demo,所有在开发周期充足的情况下可采用这种方案

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的

补充:

一、软编码和硬编码如何区分

软编码:使用CPU进行编码

硬编码:使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等

二、软编码和硬编码比较

软编码:实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点。

硬编码:性能高,低码率下通常质量低于硬编码器,但部分产品在GPU硬件平台移植了优秀的软编码算法(如X264)的,质量基本等同于软编码。

*/

上一篇下一篇

猜你喜欢

热点阅读