音视频
求闲
这个作者很懒,什么都没留下…
展开
-
Android MediaCodec踩坑笔记
关于编解码,FFMpeg不香吗,为什么要吊死在Android的MediaCodec上?对于这个问题,我也很无奈,FFMpeg很香,但是因为包体积、效率等问题引发的工作业务的需要,使我不得不在Android MediaCodec的摧残下苟且偷生。MediaCodec的api比较简单,用来写demo毫无难度,让人痛不欲生的是它的兼容性问题。使用MediaCodec遇到的问题,往往都是和机型、版本、某类媒体文件相关的问题。从开始使用MediaCodec到现在,遇到了许多问题,很多解决了后过了许久又忘记了,这篇博客原创 2020-05-10 17:14:29 · 13774 阅读 · 7 评论 -
音视频及FFMpeg概念篇
音视频编解码概念音视频格式有很多种,我们所熟知的音频文件有wav、mp3等 ,视频格式有mp4、3gp、rmvb、avi、mov等等。这些格式并不是只是文件的后缀不同,而是文件中的内容有很大的不同,哪怕这个媒体文件播放起来我们看起来觉得它们是一模一样的。 另外,我们看到的电影或者视频片段,它往往是由两个或者两个以上的流组成的,比如声音流、视频流、字幕等。甚至声音也有左声道、右声道什么的。 那么这原创 2017-10-06 22:53:36 · 2587 阅读 · 0 评论 -
Android Camera增加自定义图像处理并录制MP4
在我的一篇博客Android Camera API/Camera2 API 相机预览及滤镜、贴纸等处理中,介绍了如何给相机增加滤镜贴纸的方法,也就是自定义图像处理。而另外一篇博客Android硬编码——音频编码、视频编码及音视频混合介绍了一种编码录制MP4的方法,虽然两者结合就能实现Camera增加自定义图像处理并录制MP4的功能,但是实际上如果自定义的处理稍微复杂一些,或者录制720p或者1080原创 2017-10-03 14:19:28 · 4783 阅读 · 5 评论 -
Android利用硬解硬编和OpenGLES来高效的处理MP4视频
最近工作中遇到一个问题,就是要对视频增加视频特效,实现类似于抖音的效果,抖音的效果由其他同事实现,我的工作重心在视频的处理,特效的集成。按照之前的思路很快就实现了这个功能,但是实际应用到项目中时却遇到各种问题。于是就有了这篇博客。遇到的问题说是各种问题,特效方便的不管,我所遇到的视频处理的问题主要为以下两个方面:处理过程耗时较长。因为处理的时候是按照之前的思路,用MediaCod原创 2017-09-10 20:16:12 · 13782 阅读 · 13 评论 -
RGBA、YUV色彩格式及libyuv的使用
最近一段时间因为工作的需要,要使用到libyuv。因为之前写录制视频的时候,也要用到rgb转yuv,自己结合网上的资料做了个实现,记录了点笔记,现在索性一起整理下。常用的色彩格式常见的色彩格式主要分为两类,一类是RGBA系列,一类是YUV系列。RGBA系列首先就是rgba系列的格式,RGBA色彩主要用于色彩的显示和描述。常见的有RGBA/ARGB/BGRA/ABGR/RGB/BGR。这些格式都比较好原创 2017-07-29 20:53:47 · 30097 阅读 · 14 评论 -
让IjkPlayer支持插入自定义的GPU滤镜
最近因为工作的原因,需要提供一个将我们的AiyaEffectsSDK插入到IjkPlayer中的示例,就不得不好好看了下IjkPlayer的代码。在IjkPlayer中并没有提供设置自定义GPU滤镜的接口,所以最后只能自己动手,以求丰衣足食了。不得不说,Bilibili开源的这个IjkPlayer播放器的确非常强大,代码设计的非常清晰,仔细看看,能学到不少东西。IjkPlayer源码获取及编译方法源原创 2017-07-15 15:58:33 · 6768 阅读 · 6 评论 -
Android FFMpeg(三)——使用FFMpeg解码h264、aac
前面博客记录了FFMpeg的编译,编译后我们可以拿到FFMpeg的动态库和静态库,拿到这些库文件后,通常我们需要做个简单的封装才能在Android上层愉快的使用。本篇博客的是从拿到FFMpeg静态库到使用FFMpeg解码视频的过程,记录尽可能的详尽,可能会让博客的篇幅略长。准备工作库文件本篇博客的示例是利用FFMPeg静态库进行解码的,所以首先我们需要得到FFMpeg的静态库,编译可以参照之前的两篇原创 2017-04-13 21:02:51 · 8596 阅读 · 4 评论 -
Android FFMPeg(二)——FFMpeg+libx264编译
前面博客Android FFMpeg(一)——编译FFmpeg中记录了在windows中利用MinGW和Msys编译FFMpeg的步骤。FFMpeg中带有264的解码,没有264的编码,需要编码功能的话,可以使用x264这个库。准备编译环境win10 中内置了Linux子系统,使用win10的话,可以开启linux子系统的功能,就不需要去安装MinGW和Msys之类的软件了。开启方法也很简单:第一步原创 2017-02-18 18:02:13 · 4213 阅读 · 2 评论 -
Android视频编码——RGBA、RGB、BGRA、BGR转YUV420P、YUV420SP
做视频处理一般都会涉及到RGBA与YUV颜色格式的相互转换,理论知识就不多说了,直接贴出转换公式来: Y’= 0.299*R’ + 0.587*G’ + 0.114*B’ U’= -0.147*R’ - 0.289*G’ + 0.436*B’ = 0.492*(B’- Y’) V’= 0.615*R’ - 0.515*G’ - 0.100*B’ = 0.877*(R’- Y’)原创 2017-01-24 13:47:04 · 10667 阅读 · 18 评论 -
Android硬编码——音频编码、视频编码及音视频混合
视频编解码对许多Android程序员来说都是Android中比较难的一个知识点。在Android 4.1以前,Android并没有提供硬编硬解的API,所以之前基本上都是采用FFMpeg来做视频软件编解码的,现在FFMpeg在Android的编解码上依旧广泛应用。本篇博客主要讲到的是利用Android4.1增加的API MediaCodec和Android 4.3增加的API MediaMuxer原创 2017-01-04 15:22:54 · 17998 阅读 · 23 评论