首页
学习
活动
专区
圈层
工具
发布
综合排序丨最热优先丨最新优先
时间不限
MediaCodec硬编码pcm2aac
MediaCodec是Android(api>=16)提供的一个多媒体硬解编码库,能实现音视频的编解码。 工作原理:其内部有2个队列,一个是输入队列,一个是输出队列。 输入队列负责存储编 解码前的原始数据存储,并输送给MediaCodec处理;输出队列负责存储编解码后 的新数据,可以直接处理或保存到文件中。 AAC 的头部信息介绍 :https://blog.csdn.net/jay100500/article/details/52955232 //mediacodec private MediaFormat encoderFormat = null; private MediaCodec encoder = null; private FileOutputStream outputStream = null; private MediaCodec.BufferInfo info = null; private int perpcmsize = 0; private byte
曾大稳
2018-09-11
1.8K0
标签:
Android MediaCodec 硬编码 H264 文件
虽然 MediaCodec 仍然存在一定的弊端,但是对于快速实现编解码需求,还是很值得参考的。 以将相机预览的 YUV 数据编码成 H264 视频流为例来解析 MediaCodec 的使用。 进行编码或者解码,而输出端就得到编码或者解码后的内容。 MediaCodec 调用流程 理解了 MediaCodec 的生命周期和工作流程之后,就可以上手来进行编码工作了。 停止编码 当想要停止编码时,通过 MediaCodec 的 stop 方法切换到 Uninitialized 状态,然后再调用 release 方法释放掉。 对于 MediaCodec 硬编码解析之相机内容编码成 H264 文件就到这里了,主要还是讲述了关于 MediaCodec 的使用,一旦熟悉使用了,完成编码工作也就很简单了。
音视频开发进阶
2019-11-18
4.1K0
标签:
Android RTMP推流之MediaCodec硬编码二(RTMPDump推流)
简介 在前面的两篇文章中:Android RTMP推流之MediaCodec硬编码一(H.264进行flv封装)介绍了如何MediaCodec进行H264硬编码,然后将编码后的数据封装到flv文件中。 有了上面两篇文章的基础后,接下了就是整合,在Android平台下使用MediaCodec进行硬编码,然后使用RTMPDump进行推流。 先来张效果图: ? 我们还是使用Android RTMP推流之MediaCodec硬编码一(H.264进行flv封装)里的代码。 复制打开摄像头编码的CameraMediaCodecActivity为CameraMediaCodecRtmpActivity,然后只用修改三个地方。 硬编码一(H.264进行flv封装)是将数据直接写到文件中,现在将数据推流出去。
用户2929716
2018-08-23
5.9K0
标签:
MediaCodec 在 Android 硬解码的路线
Android系统在Android4.0(API 16)增加了 MediaCodec,可以支持app调用java接口,进而使用底层硬件的音视频编解码能力。 MediaCodec 可以处理编码,也可以处理解码;可以处理音频,也可以处理视频,里面有软解(cpu),也有硬解(gpu)。 Android MediaCodec内部大致结构 如上图所示,mediacodec 内部有两种缓冲,一种是InputBuffer,另一种是OutputBuffer。 硬解码业务路线 1.代替软解的硬解码 最简单的方式,就是configure时候Surface填null,然后将解码后的数据拷贝出来。 这样,MediaCodec的Release就渲染到SurfaceTexture类了。然后我们调用Update方法,就同步到OpenGL的Texture上了。
音视频开发进阶
2022-10-31
3.2K0
标签:
Android FFmpeg + MediaCodec 实现视频硬解码
做一个播放器,实现视频的硬解码和音视频同步等功能。 ndk-samples/tree/main/native-codec FFmpeg + ANativeCodec 在 Android 没有在 Native 层开放 ModecCodec 接口之前,FFmpeg 实现硬解码需要将视频和音频数据拷贝到 注意:本 demo 处理的视频是 H.264 编码,由于 AVPacket data 不是标准的 NALU ,需要利用 av_bitstream_filter_filter 将 AVPacket 前 4 在一个线程中解复用,分别将音频和视频的编码数据包放入 2 个队列。 GetDuration() * av_q2d(m_VideoTimeBase); usleep(10 * 1000); } //音频和视频的编码数据包分别放入
字节流动
2022-01-05
4.6K0
标签:
MediaCodec判断是否可以采用硬解码
break; } } return supportvideo; } } 具体的类型对应关系可以查看相关文档,这里在Android源码MediaCodec.createDecoderByType * @throws NullPointerException if type is null. */ @NonNull public static MediaCodec createDecoderByType (@NonNull String type) throws IOException { return new MediaCodec(type, true /* nameIsType
曾大稳
2018-09-11
2.6K0
标签:
Android RTMP推流之MediaCodec硬编码一(H.264进行flv封装)
接下来讲分几篇文章来介绍如何使用Android系统的MediaCodec进行H264硬编码,然后封装推流。这一块涉及的内容很多,其中涉及一些基础知识也会有单独文章介绍比如flv格式。 客户端先从MediaCodec获取一个可用的输入缓冲区,然后将待编码的数据填充到缓冲区,然后交给MediaCodec去处理。 ---- MediaCodec编码 创建并配置MediaCodec 我们按前面的流程使用MediaCodec。 接下来就是关键部分了MediaCodec进行H264编码。 到此,我们就基本了解如何使用MediaCodec进行H.264硬编码,然后坐Flv格式封装。后续会陆续推出将封装的flv数据进行RTMP推流,请大家关注!
用户2929716
2018-08-23
4.6K1
标签:
FFmpeg 调用 MediaCodec 硬解码到 Surface 上
这是关于 FFmpeg 和 MediaCodec 爱恨情仇系列的第三篇文章了。 之前写了 FFmpeg 调用 MediaCodec 进行硬解码的内容。 FFmpeg 调用 Android MediaCodec 进行硬解码 另外也给出了 FFmpeg 的编译脚本,轻松搞定编译问题。 之前介绍的 FFmpeg 调用 MediaCodec 进行硬解码只是解码出了 Buffer 数据,没有把解码到 Surface 上的能力用起来。 to wrap MediaCodec buffer\n"); return ret; } } Surface 模式下对数据的处理是 mediacodec_wrap_hw_buffer 一般解码非 Buffer 数据的情况,都会将特殊的内容保存到 data[3] 上,比如 Window 上的硬解,部分源码如下: static int mediacodec_wrap_hw_buffer(
音视频开发进阶
2021-11-16
1.9K0
标签:
国标GB28181协议平台EasyGBS视频推流组件EasyGBD MediaCodec硬编码流程
本文我们来分享下TSINGSEE青犀视频开发EasyGBD MediaCodec硬编码的流程。 EasyGBD的硬编码的流程如下: 1、初始化编码器 2、配置编码器参数 3、开始编码 4、获取编码器的输入缓存inputBuffers 和输出缓存outputBuffers 5、将要编解码的数据拷贝到 empty buffer,然后放入input缓冲区队列 6、子线程中不停的编码,并清空输入缓存区 7、停止编码并释放编码资源占用
TSINGSEE青犀视频
2021-02-03
8440
标签:
硬编码
在计算机程序或文本编辑中,硬编码是指将可变变量用一个固定值来代替的方法。用这种方法编译后,如果以后需要更改此变量就非常困难了。 通常情况下,都应该避免使用硬编码方法。 java小例子: int a=2,b=2; 硬编码:if(a==2) return false; 不是硬编码 if(a==b) return true; 一个简单的版本: 顾名思义, 就是把数值写成常数而不是变量 这里的120就属于数字式“硬编码”,这不仅让程序很难读,而且不易维护。如果要修改120,就的修改程序中所有与此有关的120。 应将数字式“硬编码”声明成一个宏(全局配置文件,propertities),这样程序不仅易读,而且还可以一改全改。
狼啸风云
2022-09-03
2.5K0
标签:
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档