美文网首页
MediaExtractor&MediaMuxer API解析和

MediaExtractor&MediaMuxer API解析和

作者: 张俊峰0613 | 来源:发表于2018-10-29 20:52 被阅读0次

一个音视频文件是由音频和视频组成的,我们可以通过MediaExtractor、MediaMuxer把音频或视频给单独抽取出来,抽取出来的音频和视频能单独播放

一、MediaExtractor API

MediaExtractor主要用于多媒体文件的音视频数据的分离。
该类主要用于音视频混合数据的分离,接口比较简单,首先要通过setDataSource(String path)函数设置数据源,数据源可以是本地文件地址,也可以使用HTTP协议的网络码流地址。
然后,可以通过下面的代码块,来获取码流的详细信息,如:MimeType,分辨率、编码格式、码率、帧率等等。

主要API介绍:

  • setDataSource(String path):即可以设置本地文件又可以设置网络文件
  • getTrackCount():得到源文件通道数
  • getTrackFormat(int index):获取指定(index)的通道格式
  • getSampleTime():返回当前的时间戳
  • readSampleData(ByteBuffer byteBuf, int offset):把指定通道中的数据按偏移量读取到ByteBuffer中;
  • advance():读取下一帧数据
  • release(): 读取结束后释放资源

MediaMuxer API

MediaMuxer的作用是生成音频或视频文件;还可以把音频与视频混合成一个音视频文件。

主要API介绍:

  • MediaMuxer(String path, int format):path:输出文件的名称 format:输出文件的格式;当前只支持MP4格式;
  • addTrack(MediaFormat format):添加通道;我们更多的是使用MediaCodec.getOutpurForma()或Extractor.getTrackFormat(int index)来获取MediaFormat;也可以自己创建;
  • start():开始合成文件
    writeSampleData(int trackIndex, ByteBuffer byteBuf, MediaCodec.BufferInfo bufferInfo):把ByteBuffer中的数据写入到在构造器设置的文件中;
  • stop():停止合成文件
  • release():释放资源

示例

使用MediaExtractor&MediaMuxer API提取input.mp4文件中的视频数据,生成除去音频数据之后的纯视频output.mp4文件。
源码地址:https://github.com/Xiaoben336/AnalysisAndPackageMP4.git

相关文章

  • MediaExtractor&MediaMuxer API解析和

    一个音视频文件是由音频和视频组成的,我们可以通过MediaExtractor、MediaMuxer把音频或视频给单...

  • 【Socket】概念和API解析

    概念 背景: 在网络中,一个进程的唯一标识 = IP + port + 协议。进程有了唯一标识,就可以进行网络通信...

  • N Box解析

    【推荐官方解析一】https://api.jiexi.la/?url=【推荐官方解析一】 【官方解析二】http:...

  • 一:OpenGL-初识

    本节知识点: 图形API简介 图形API解决那些问题? OpenGL 中专业名词解析 OpenGL坐标系解析 图形...

  • 采集抖音视频无水印api

    目前可用的抖音api接口 98api 流星云API 非api [VIDEOPARSE 短视频解析] 付费去水印 9...

  • retrofit2中关于baseUrl问题(一)

    http://api.m.mtime.cn/PageSubArea/TrailerList.api两种解析方法,一...

  • iOS-XML解析

    SAX和DOM,NSXMLParser和GDataXML和ONOXML 基于不同的API有两种不同的解析方式: 1...

  • PYTHON XML解析-SAX解析

    1.SAX模块 SAX是一种基于事件驱动的API,利用SAX解析XML牵扯到两个部分,解析器和事件处理器。其中解析...

  • 如何进行XML解析

    有以下两种方法: 1、SAX解析 SAX:Simple API for XML .基于事件驱动的解析方式,逐行解析...

  • JavaScriptCore C语言部分详细解读

    JavaScriptCore C API 详细解析 JavaScriptCore介绍 JavaScriptCore...

网友评论

      本文标题:MediaExtractor&MediaMuxer API解析和

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