美文网首页OpenGL渲染音视频直播技术
最优秀的开源库之GPUImage

最优秀的开源库之GPUImage

作者: 音视频直播技术专家 | 来源:发表于2017-09-07 13:00 被阅读270次
效果图

前言

近期想了解一下 IOS 下是如何进行音视频采集和渲染的。在学习一门新的知识时,很多人都有自己的学习方法,有的是买书学习,有的是看论坛等等不一而终。我的学习习惯是直接找一个比较好的开源项目,去分析它的代码。这样即可以了解到新的知识,又可以知道该如何编写正确的代码。自己的一点小心得哈。

言归正转,我们都知道对于视频的采集,IOS提供了 AVFoundtion 库,这个库非常强大,可以做很多事情。但如果我们要对里边的每个函数都仔细的过一遍的话还是要花不少时间的,而且还可能有很多坑在等着我们。是否有这方面比较好的开源库呢?这样我们不就轻松的跳过了这些坑了吗?于是我发现了GPUImage库。

GPUImage在github上有16304个星,哇,能有几百个星就已经很了不起了,它居然能有上万的星,可见它人气是非常旺的。下面我们来看看 GPUImage 都能干些什么吧。

GPUImage

GPUImage是一个BSD许可的IOS库,它使用GPU加速对图像,实时视频和电影做美颜,灰度等各种特效。在大规模并行运算处理图像或实时视频时,GPU相对于CPU有显著的性能优势。在iPhone4上,一个简单的图像过滤器在GPU上执行的速度比CPU的过滤器快100倍以上。然而,在GPU上运行自定义过滤器需要大量处理OpenGL ES相关的代码。而GPUImage帮我们解决了这些问题,它对 OpengGL ES做了非常好的封装,我们只要调用简单的几个接口就可以做出各种特效来。

GPUImage总体结构

GPUImage使用OpenGL ES 2着色器进行图像和视频处理速度远远超过基于CPU程序做的。而且它提供了简化的Objective-C接口,隐藏了OpenGL复杂的交互。这个接口允许您将图像和视频作为输入源,经过过滤器,最后得到处理的图像或视频的画面。

图像或视频帧可以通过GPUImageVideoCamera、GPUImageStillCamera、GPUImagePicture及GPUImageMovie类获得。

  1. GPUImageVideoCamera: 从Camera获取的实时视频。
  2. GPUImageStillCamera: 从Camera获取到的图片。
  3. GPUImagePicture: 静态图片。
  4. GPUImageMovie: 电影

图片或帧上传到OpengGL ES后做为纹理,然后将这些纹理传递给处理链中的下一个对象。

例如,一个应用程序,从Camera获取视频,转换视频到深褐色调,然后显示视频到屏幕上。将建立一个链,看起来像下面这样子:

GPUImageVideoCamera -> GPUImageSepiaFilter -> GPUImageView

效果对比图

依赖库

GPUImage依赖下面的几个库:

CoreMedia: AVFoundation常用的功能。
CoreVideo: OpenGL ES 使用的视频基础库。
OpenGLES: 用于图像渲染。
AVFoundation: 音视频基础库。
QuartzCore: 用于渲染、组合和动画视觉元素。

小结

本篇文章是对GPUImage的一个简单的介绍。后面我会对GPUImage做进一步的分析,请大家继续观注

谢谢!


微信公众号

相关文章

  • 最优秀的开源库之GPUImage

    前言 近期想了解一下 IOS 下是如何进行音视频采集和渲染的。在学习一门新的知识时,很多人都有自己的学习方法,有的...

  • iOS项目集成GPUImage(以制作libGPUImage.a

    1.首先下载GPUImage开源库 2.进入下载好的GPUImage文件夹,打开GPUImage.xcodepro...

  • GPUImage

    GPUImage的简单使用 GPUImage 是一个开源的图像处理库,提供了非常多的滤镜效果来加工图片。GPUIm...

  • GPUImage的简单使用

    GPUImage 是一个开源的图像处理库,提供了非常多的滤镜效果来加工图片。GPUImage 并不像一般的第三方库...

  • GPUImage的基本使用

    GPUImage 是一个开源的图像处理库,提供了非常多的滤镜效果来加工图片。GPUImage 并不像一般的第三方库...

  • GPUImage(一)概述

    GPUImage 是一个开源的图像处理库,提供了非常多的滤镜效果来加工图片。GPUImage 并不像一般的第三方库...

  • GPUImage简介

    GPUImage 概述 GPUImage是一个遵循BSD的iOS开源库,通过使用它可以为图片、实时视频和影片添加G...

  • 导入GPUImage

    1.GPUImage开源库并不像普通的开源库那样子,拖进你的工程中就可以用.首先上官网下载源码: https://...

  •  iOS 使用GPUImage实现滤镜效果

    GPUImage实现滤镜效果 GPUImage是一个开源的图像处理第三方库,提供了100多种滤镜效果来加工处理图片...

  • 2018-01-09 Android中常用的优秀开源框架

    Android开源框架库分类,挑选出最常用,最实用的开源项目,本篇主要介绍的是优秀开源框架库和项目,UI个性化控件...

网友评论

    本文标题:最优秀的开源库之GPUImage

    本文链接:https://www.haomeiwen.com/subject/gzcijxtx.html