视频录制原理与实现

作者: 安卓技术砖家 | 来源:发表于2021-07-25 06:13 被阅读0次

这篇博客应该是相当有分量的博客了。篇幅会比较长,因为内容很多。我尽力的想写的详细,而又不至于繁琐。这之间的程度是很难把握的,话不多说 进入主题。首先,在这之前,需要对几个类,以及他们的方法的有所了解。

视频录制原理

MediaCodec

谷歌对这个类的描述如下,MediaCodec类可用于访问底层媒体编解码器,即编码器/解码器组件。它是Android底层多媒体支持基础架构的一部分(通常与MediaExtractor、MediaSync、MediaMuxer、MediaCrypto、MediaDrm、Image、Surface和AudioTrack一起使用)。重点是 编码解码器,因为系统产生的数据 ,都是原始的数据,需要他进行处理。

原理

下面这张图,只需要粗略看一看,你只需要知道 MediaCodec 有两个ByteBuffer,一个是输入,一个是输出。这也很好理解。毕竟编码解码器,肯定是要你给它旧数据,它编码解码完,还给你一个新数据。两个ByteBuffer 就相当于两个篮子,接受发送数据。

安卓_视频录制原理与实现_内容1.png

视频录制实现

返回要用有效数据填充的输入缓冲区的索引,如果当前没有可用的缓冲区,则返回-1。如果timeoutUs == 0,该方法将立即返回;如果timeoutUs < 0,则无限期等待输入缓冲区的可用性;如果timeoutUs > 0,则等待“timeoutUs”微秒。

public int dequeueInputBuffer (long timeoutUs)

这个方法呢,就是返回 输入缓冲区的索引(mediaCodec可以通过索引找到缓冲区)。也就是上面的ByteBuffer。

通过上面的索引,找到输入缓冲区。

public ByteBuffer getInputBuffer (int index)

注意,上面这个是input

返回输出缓冲区队列索引,最多阻塞“timeoutUs”微秒。返回已成功解码的输出缓冲区和INFO_*常量之一的索引。info 就是描述输出缓冲区数据的,例如时间,大小

public int dequeueOutputBuffer (MediaCodec.BufferInfo info,  long timeoutUs)

通过上面的索引,找到输出缓冲区。

public ByteBuffer getOutputBuffer (int index)

注意,上面这个是output

释放输出缓冲区 ,这个也好理解,你从输出缓冲区取完数据了,得要把缓冲区清空,放回去,取下一次的数据

public void releaseOutputBuffer (int index,  boolean render)

相关文章

  • 视频录制原理与实现

    这篇博客应该是相当有分量的博客了。篇幅会比较长,因为内容很多。我尽力的想写的详细,而又不至于繁琐。这之间的程度是很...

  • 视频录制原理与实现

    这篇博客应该是相当有分量的博客了。篇幅会比较长,因为内容很多。我尽力的想写的详细,而又不至于繁琐。这之间的程度是很...

  • Android仿微信录制小视频的进度条

    前言 在 仿微信录制短视频 库中有一个自定义的View,就是录制视频时的进度条。其实现的原理很简单。 实现思路 可...

  • GPUImage(六):GPUImageMovieWriter

    实现原理: 通过GPUImage滤镜处理、录制、保存的思路如图。视频部分:经过filter的视频帧分两步,一步用于...

  • 音视频基础

    音视频录制原理 音视频播放原理 录制是播放的一个逆过程。 图像表示-RGB格式 红光(R)绿光(G)蓝光(B)每个...

  • GPUImage-3-1、实时录制视频

    视频采集需要用到的类GPUImageVideoCamera 要实现的功能:1、实现视频的录制2、实现录制过程中对视...

  • 使用 MediaExtractor + MediaMuxer 多

    在上一篇文章OpenGLES + MediaCodec 短视频分段录制实现与无丢帧录制优化中说到了MediaCod...

  • 视频录制,压缩导出,取帧

    视频录制 首先,我们弹出系统的视频录制界面,也就是UIImagePickerController控制器来实现,但是...

  • Android实现视频录制

    目录 效果展示 实现步骤 ●实现自定义相机这里代码比较简单就不多解释了,另外自定义相机中实现了一个用于返回Came...

  • 屏幕录制软件怎么用?

    用屏幕录制软件可以实现很多功能,比如说录制课程视频、录制游戏视频等等,屏幕录制软件操作也比较简单,迅捷屏幕录像工具...

网友评论

    本文标题:视频录制原理与实现

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