博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
媒体使用方法
阅读量:5332 次
发布时间:2019-06-14

本文共 1695 字,大约阅读时间需要 5 分钟。

一、媒体一些常用的API接口

  1.mediaExtractor                 : 视频分离

   mediaExtractor使用一般过程:

     1.//设置数据源 setDataSource

     2.//分离轨道 getTrackCount,getTrackFormat

     3.//选择轨道 selectTrack,unselectTrack

     4.//读取数据 readSampleData

     5.//下一帧 advance

     6.//释放 release

  2.mediaMuxer                     : 视频合成

   mediaMuxer使用一般过程:

    1.new  MediaMuxer(String "合成的路径 " , "和成的格式");

    2.//添加轨道 addTrack

    3.写数据 writeSampleData

    4.释放 release

  3.mediaCodec                     : 媒体的编解码器件,即为媒体的编码/解码的组件

   meidaCodec的使用过程

      1.创建编解码器    createDecodeByType/createEnconderByType

    2.对编解码进行配置  config(MediaFormat , Surface (将获得outputBuffer放在SurfaceView上面显示), MediaCrypto(加密) , int flag )

     1)、videoDecode.config(MediaFormat , Surface , null , 0 );

     //将SurfaceTexture作为参数创建一个Surface,用来接收解码视频流

     mVideoDecoder.configure(format,new Surface(mVideoSurfaceTexture),null,0);

     2)、videoEncode.config(MediaFormat , 0 , 0, MediaCodec.CONFIGURE_FLAG_ENCODE)

     mVideoEncoder.configure(videoFormat,null,null,MediaCodec.CONFIGURE_FLAG_ENCODE = 1);

    3.编解码器开始工作        start

    4.getInputBuffer、getOutputBuffer 、deququeInputBuffer 、dequeueOutputBuffe四个函数开始工作

  4.mediaFormat                    : 媒体数据格式的信息

  

二、mediaCodec使用的思想

  1.MediaCodec.createDecoderByType  : 创建解码器

  2.MediaCodec.createEnconderByType:    创建编码器

  3.MediaCodec.getInputBuffer               :     从 mediaCodec中获得InputBuffer---------->传递解码器的 

  4.MediaCodec.getOutputBuffer            :     从mediaCodec中获得OutputBuffer-------->传递给编码器的 

  5.MediaCodec.deququeInputBuffer      :     把数据传递给编/解码器

  6.MediaCOdec.dequeueOutputBuffer  :     编/解码得到数据-----mediaDeconder.config(mediaFormat , surfaceView,MediaCrypo,int)中的Surface(一般指SurfaceView)会讲内容显示在Surface上面

 

三、mediaExtractor使用思想

  1. SAMPLE_FLAG_SYNC    :   表示关键帧----> I  帧

转载于:https://www.cnblogs.com/liunx1109/p/9220553.html

你可能感兴趣的文章
第三周vim入门学习1
查看>>
Linux内核分析(第九周)
查看>>
Serlvet学习笔记之一 ——实现servlet的3种方法
查看>>
批处理
查看>>
使用pycharm编写自动化脚本
查看>>
browser-sync启动命令
查看>>
HttpWebRequest请求返回非200的时候 HttpWebResponse怎么接受返回错误提示
查看>>
VBScript 内置函数
查看>>
java打jar包的几种方式详解
查看>>
U帮忙U盘启动盘制作
查看>>
关于sublime3中package controle不出来的问题
查看>>
转载【微信小程序】:微信小程序滚动Tab选项卡:左右可滑动切换(仿某宝)
查看>>
Pointer Lock API
查看>>
显卡花屏
查看>>
为什么你有10年经验,但成不了专家?(转)
查看>>
appium的运行原理
查看>>
python描述符理解
查看>>
Feign 负载均衡
查看>>
2014025674(16) 《嵌入式系统程序设计》第七周学习总结
查看>>
hdu 2141 Can you find it?
查看>>