0%

FFmpeg近期推出了一个重要Feature,即将原来的FFmpeg命令行工具由单线程变成了多线程

1
ffmpeg -i input.mp4 -c:v libx264 -crf 23 out.mp4

如上面的命令,以前使用上面命令进行转码时,由于它是单线程工作模式,因此只能利用一个CPU内核。而现在改成多线程工作模式后,它可以充分利用你机子上的多个CPU内核,这可以大大加快转码的速度。

阅读全文 »

上一篇文章中我已经向你介绍了二次渲染和BlitFramebuffer两种离屏渲染技术,今天我们来看一下如何通过FBO实现离屏渲染。

什么是FBO

FBO(Framebuffer Object),它是一个对象而不是一个缓冲区,不能直接用来存放视频帧。其示意图如下所示:

阅读全文 »

上一篇中我们介绍了如何自己创建一个渲染线程,并在该线程上构建EGL环境,本文我们分别介绍一下在渲染线程中如何通过二次渲染法进行离屏渲染以及如何通过BlitFramebuffer实现离屏渲染。

阅读全文 »

如我们在OpenGL离屏渲染一文中所述,实现离屏渲染必须采用SurfaceView+自己创建渲染线程的技术路线。本文我们来了解一下如何为SurfaceView创建一个渲染线程,并在该线程中构建EGL环境。

阅读全文 »

经常有同学问我如何将OpenGL渲染出的结果保存成mp4文件,今天我们就来聊聊这个话题。

离屏渲染

要想将OpenGL渲染出的结果保存成mp4文件,我们需要使用一种称为离屏渲染的技术。

阅读全文 »

我们使用OpenGL渲染图片或视频时,经常遇到图片或视频被拉伸而变形的情况。这种问题在线上产品中是必须要杜绝的,这篇文章我们就来看看该如何解决图片或视频被拉伸的情况。

阅读全文 »

课程中我已经将Shader的一些基本语法都向你介绍清楚了,这篇文章我们来聊聊OpenGL的性能优化。

我们使用GPU时,一个非常重要的优化点是CPU与GPU之间的数据传输。一个重要原则是:使用Shader时尽量不要在CPU与GPU之间频繁的传输数据。在CPU与GPU之间频繁的传输数据会大大降低程序的执行效率,严重时甚至不如直接使用CPU进行渲染。

为了解决这个问题,OpenGL为我们提供了几种优化方法,如VBO、EBO与VAO。每种方法都有其特定的应用场景,下面我们就分别讲解一下这几种方法该如何使用。

阅读全文 »

这篇文章我们来聊聊光与色彩。

我们之所以能够看到这缤纷的世界,能够看到各式各样的物体,能够看到美丽的图画都要归功于

照射到物体后,物体会将一部分光反射到我们的眼睛里,而我们的眼睛会从中提取必要的信息传给大脑,这样在我们的大脑中就会“构造”出一幅图像,而这幅图像就是我们看到的景像了。这就是我们通过人眼能看到物体的真正原因。

阅读全文 »

对于图形学来说,图形的各种变换,如放大、缩小、平移、旋转等,都可以通过矩阵的加法、减法、乘法来实现。今天我们就来看看如何通过矩阵的运算来实现图形的变换。

阅读全文 »

前面我已经将Android的显示原理及如何在Android如何构建OpenGL环境向你介绍清楚了,那么今天咱们再来聊聊图形渲染管线以及Shader编程。

图形渲染管线

阅读全文 »