当前位置: 首页 > 知识库问答 >
问题:

如何使用MediaCodec和MediaMuxer录制视频和音频

宋涵忍
2023-03-14

我能够在MediaCodec和MediaMuxer的帮助下录制(编码)视频。接下来,我需要在MediaCodec和MediaMuxer的帮助下处理音频部分和带视频的mux音频。

我面临两个问题:

>

如何将音频和视频数据传递给MediaMuxer(因为writeSampleData()方法一次只接受一种类型的数据)?

我提到了MediaMuxerTest,但它使用的是MediaExtractor。我需要使用MediaCodec,因为视频编码是用MediaCodec完成的。如果我错了,请纠正我。

任何建议或建议都将非常有用,因为这些新API没有适当的留档。

注:

  1. 我的应用目标是API 18(Android4.3)

共有1个答案

夏长卿
2023-03-14

>

  • 不,音频不一定需要单独的线程,只需使用两个单独的MediaCodec实例即可。

    writeSampleData的第一个参数trackIndex,它允许您指定每个数据包对应的轨道。(通过运行两次addTrack,每个曲目一次,您将获得两个单独的曲目ID。)

  •  类似资料:
    • 我正在修改一个Android框架示例,将MediaCodec生成的基本AAC流打包成一个独立的。mp4文件。我使用的是一个实例,其中包含一个由实例生成的AAC曲目。 然而,我总是最终得到一个错误消息调用:

    • 我想通过复用麦克风的音频(覆盖didGetAudioData)和摄像机的视频(覆盖onpreviewframe)来生成mp4文件。但是,我遇到了声音和视频同步的问题,视频会比音频出现得更快。我想知道这个问题是否与不兼容的配置或演示时间有关,有人能指导我如何解决这个问题吗?下面是我的软件。 视频配置 音频配置 得到如下音频演示文稿, 我的问题是由应用抖动功能只音频引起的吗?如果是,我如何为视频应用抖

    • 我正在开发一个应用程序,在其中我解码视频,替换某些帧,并使用和重新编码。如果我不替换任何帧(我在下面解释的1080p视频除外),该应用程序就可以工作,但当我替换帧时,被替换帧之后的帧会被像素化,并且视频会有起伏。 此外,当我使用1920x1080个视频尝试我的应用程序时,我会得到一个奇怪的输出,其中视频没有显示任何内容,直到我滚动到视频的开头,然后视频开始显示(但与之前提到的相同问题编辑后的像素化

    • 我正在使用MediaCodec将PCM数据转换为AAC,并使用MediaMuxer将此aac数据存储到m4a文件中。没有视频。 该文件会生成,甚至会播放。但是没有声音。如果我将aac文件导入Audacity,它不会显示任何数据。音频的长度甚至是预期的时间。我知道数据正在被编码,尽管我不确定这些数据是否被正确编码。 对pcm数据进行编码: 我已经浏览了大量示例,我所做的一切似乎都是正确的。如果我在o

    • 我是gstreamer的新手,我想录制音频和视频并将其保存到。mp4格式,使用网络摄像头录制视频,使用麦克风录制音频这是我的管道 gst-launch-1.0-e v4l2src!队列x264enc!H264解析!队列qtmux0.alsasrc!'音频/x-raw,速率=44100,深度=24’!音频转换!音频重采样!voaacenc!aacparse!qtmux!filesink locati