Android MediaCodec 的程序集容器

Posted

技术标签:

【中文标题】Android MediaCodec 的程序集容器【英文标题】:assembly container for Android MediaCodec 【发布时间】:2012-11-23 03:13:57 【问题描述】:

android 上的 MediaExtractor 有什么与 相反 的功能吗? 从 MediaCodecs 获取一个或多个流(例如 1 个视频和 1 个音频) 并将它们打包成容器格式以便流式传输或写入文件?

【问题讨论】:

【参考方案1】:

看起来答案是否定的。 主要是因为底层 API 是为视频流设计的,而不是为视频压缩而设计的。 将编码器的输出写入文件,您将获得原始 h264 文件。例如,可以使用 mplayer 或 ffplay 播放。 ffmpeg 也可用于将此原始文件混合到某个容器中。但首先你需要为 android 构建 ffmpeg。

【讨论】:

实际上它不是为视频流设计的,因为不支持单个支持流的容器。即使您可以直接获得编码器的输出(在 Android 对不起,我的错误,“不用于写入容器”更正确。也许编码器的输出没有记录,但它现在是原始的 h264。 mplayer 可以毫无问题地显示此类视频。

以上是关于Android MediaCodec 的程序集容器的主要内容,如果未能解决你的问题,请参考以下文章

Android - 在 MediaRecorder、MediaCodec 和 Ffmpeg 之间进行选择

Android媒体解码MediaCodec MediaExtractor学习

Android 多媒体——MediaCodec编码AAC

使用 MediaCodec 和 Surface 进行 Android 编码

Android OpenGL ES 学习 - MediaCodec + OpenGL 解析H264视频+滤镜

Android OpenGL ES 学习 - MediaCodec + OpenGL 解析H264视频+滤镜