解码器怎么(格力空调解码器怎么使用)
一,MediaCodec工作原理
MediaCodec类Android提供的用于访问低层多媒体编/解码器接口,它是Android低层多媒体架构的一部分,通常与MediaExtractor、MediaMuxer、AudioTrack结合使用,能够编解码诸如H.264、H.265、AAC、3gp等常见的音视频格式。
广义而言,MediaCodec的工作原理就是处理输入数据以产生输出数据。具体来说,MediaCodec在编解码的过程中使用了一组输入/输出缓存区来同步或异步处理数据:首先,客户端向获取到的编解码器输入缓存区写入要编解码的数据并将其提交给编解码器,待编解码器处理完毕后将其转存到编码器的输出缓存区,同时收回客户端对输入缓存区的所有权;然后,客户端从获取到编解码输出缓存区读取编码好的数据进行处理,待处理完毕后编解码器收回客户端对输出缓存区的所有权。不断重复整个过程,直至编码器停止工作或者异常退出。
mediacodec的作用是处理输入的数据生成输出数据。首先生成一个输入数据缓冲区,将数据填入缓冲区提供给codec,codec会采用异步的方式处理这些输入的数据,然后将填满输出缓冲区提供给消费者,消费者消费完后将缓冲区返还给codec。二,MediaCodec编码过程
在整个编解码过程中,MediaCodec的使用会经历配置、启动、数据处理、停止、释放几个过程,相应的状态可归纳为停止(Stopped),执行(Executing)以及释放(Released)三个状态,而Stopped状态又可细分为未初始化(Uninitialized)、配置(Configured)、异常( Error),Executing状态也可细分为读写数据(Flushed)、运行(Running)和流结束(End-of-Stream)。
MediaCodec整个状态结构图如下:
从上图可知,当MediaCodec被创建后会进入未初始化状态,待设置好配置信息并调用start()启动后,MediaCodec会进入运行状态,并且可进行数据读写操作。如果在这个过程中出现了错误,MediaCodec会进入Stopped状态,我们就是要使用reset方法来重置编解码器,否则MediaCodec所持有的资源最终会被释放。当然,如果MediaCodec正常使用完毕,我们也可以向编解码器发送EOS指令,同时调用stop和release方法终止编解码器的使用。三,MediaCodec API 说明
MediaCodec可以处理具体的视频流,主要有这几个方法:getInputBuffers:获取需要编码数据的输入流队列,返回的是一个ByteBuffer数组queueInputBuffer:输入流入队列dequeueInputBuffer:从输入流队列中取数据进行编码操作getOutputBuffers:获取编解码之后的数据输出流队列,返回的是一个ByteBuffer数组dequeueOutputBuffer:从输出队列中取出编码操作之后的数据releaseOutputBuffer:处理完成,释放ByteBuffer数据四,MediaCodec基本使用
所有的同步模式的 MediaCodec API都遵循一个模式:
创建并配置一个 MediaCodec 对象循环直到完成:如果输入缓冲区就绪,读取一个输入块,并复制到输入缓冲区中如果输出缓冲区就绪,复制输出缓冲区的数据释放 MediaCodec 对象(1) 创建编/解码器
MediaCodec主要提供了createEncoderByType(String type)、createDecoderByType(String type)两个方法来创建编解码器,它们均需要传入一个MIME类型多媒体格式。常见的MIME类型多媒体格式如下:● "video/x-vnd.on2.vp8" - VP8 video (i.e. video in .webm)● "video/x-vnd.on2.vp9" - VP9 video (i.e. video in .webm)● "video/avc" - H.264/AVC video● "video/mp4v-es" - MPEG4 video● "video/3gpp" - H.263 video● "audio/3gpp" - AMR narrowband audio● "audio/amr-wb" - AMR wideband audio● "audio/mpeg" - MPEG1/2 audio layer III● "audio/mp4a-latm" - AAC audio (note, this is raw AAC packets, not packaged in LATM!)● "audio/vorbis" - vorbis audio● "audio/g711-alaw" - G.711 alaw audio● "audio/g711-mlaw" - G.711 ulaw audio当然,MediaCodec还提供了一个createByCodecName (String name)方法,支持使用组件的具体名称来创建编解码器。但是该方法使用起来有些麻烦,且官方是建议最好是配合MediaCodecList使用,因为MediaCodecList记录了所有可用的编解码器。当然,我们也可以使用该类对传入的minmeType参数进行判断,以匹配出MediaCodec对该mineType类型的编解码器是否支持。
以指定MIME类型为"video/avc"为例,代码如下:private static MediaCodecInfo selectCodec(String mimeType) { // 获取所有支持编解码器数量 int numCodecs = MediaCodecList.getCodecCount(); for (int i = 0; i
哪个缩阴产品好(国家认可的缩阴产品)(健康时报记者李超然孔天骄)轻松缩阴,宛如新婚!这是一个微商在朋友圈为其代理的某款名为伊乃尔草本妇科凝胶的文案。在她的文字里,这款产品具有杀菌消炎私处紧致子宫排毒等多种功效,是产后
微信漂流瓶如何查聊天记录(微信聊天记录在哪里查)微信漂流瓶如何查聊天记录(微信聊天记录在哪里查)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但有时
微信漂流瓶的聊天记录其他人能查吗(微信聊天记录在哪里查)微信漂流瓶的聊天记录其他人能查吗(微信聊天记录在哪里查)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机空间
微信漂流瓶在怎么查聊天记录(如何恢复微信聊天记录)微信漂流瓶在怎么查聊天记录(如何恢复微信聊天记录)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但有
哪里借钱利息低(门槛低下款快的借贷平台)生活中,大家难免会有急用钱的时候,小编上周家里有急事用钱,使用了一款叫微粒贷的小额贷款产品。急用钱哪里好借款微粒贷的审核和到账速度是真的快,一分钟左右就到账了,很及时,推荐给急用钱
哪个品牌女鞋(哈森和森达女鞋哪个品牌好)本土中高档鞋类上市公司哈森商贸(中国)股份有限公司(以下简称哈森股份),业绩持续下滑,公司近日公布的2017年年报显示,报告期内,公司实现营业收入14。97亿元,同比减少11。03
中国移动宽带怎么样(中国移动宽带套餐价格表)10月31日,中国移动手机客户端正式上线了5G套餐,分为个人版和家庭版2个版本,起售价128元起步,最高869元。其中个人版分为5档,售价分别为128198298398598元,流
联通移动电信哪个好(2021年三大运营商5G谁更强)近日,三大电信运营商陆续公布了2021年上半年财报,其中,5G是一大亮点,在三大电信运营商的半年财报推介材料中也占据了最多的篇幅。运营商半年报中的主要5G数据中国移动5G用户ARP
买车app软件哪个好(买车app哪个靠谱)网友投稿相信对车比较感兴趣的朋友们,应该都听说过汽车之家易车网和懂车帝这三家汽车资讯平台,它们也是目前比较权威的汽车论坛。把他们放在一起对比,只能说三家各有特色吧,但是从专业程度来
学英语哪个app好(适合大学生学英语的软件)都说正确的选择,是成功的一半,英语学习软件的选择亦是如此!为了能更轻松高效地学好英语,我研究了市面上我能找到的将近100个英语学习APP。但绝大多数APP存在死背单词内容枯燥强迫分
电视app哪个好(看电视软件哪个好用)文文娱商业观察,作者阿木电视正在走向消亡吗?1997年,美国学者尼葛洛庞帝在数字化生存一书中写到,在数字化过程中,传统电视智慧分布发生变迁,被外界认为是首次提出电视消亡说。再到近十