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

问题编码音频与Mediacodec和摩托罗拉移动

杨甫
2023-03-14

我已经能够实现视频/音频解码器和编码器。在我的三星S3上,一切正常。然后我部署到三星,我有一些旋转问题,我已经修复,但最终编码的视频没有音频。当我停止mediamuxer时,我会得到以下日志:

01-29 12:35:26.372 I/MPEG4Writer(23222): Received total/0-length (27/0) buffers and encoded 27 frames. - video
01-29 12:35:26.374 D/MPEG4Writer(23222): Stopping Audio track
01-29 12:35:26.376 I/MPEG4Writer(23222): Received total/0-length (4/82) buffers and encoded 4 frames. - audio
01-29 12:35:26.376 I/MPEG4Writer(23222): Audio track drift time: 0 us
01-29 12:35:26.377 D/MPEG4Writer(23222): Stopping Audio track source
01-29 12:35:26.377 D/MPEG4Writer(23222): Audio track stopped
01-29 12:35:26.377 D/MPEG4Writer(23222): Stopping Video track
01-29 12:35:26.377 D/MPEG4Writer(23222): Stopping Video track source
01-29 12:35:26.377 D/MPEG4Writer(23222): Video track stopped
01-29 12:35:26.378 D/MPEG4Writer(23222): Stopping Audio track
01-29 12:35:26.378 D/MPEG4Writer(23222): Duration from tracks range is [80000, 1772500] us
01-29 12:35:26.378 D/MPEG4Writer(23222): Stopping writer thread
01-29 12:35:26.379 D/MPEG4Writer(23222): 1 chunks are written in the last batch
01-29 12:35:26.380 D/MPEG4Writer(23222): Writer thread stopped
01-29 12:35:30.212 D/MPEG4Writer(23222): Stopping Video track
01-29 12:35:30.212 D/MPEG4Writer(23222): Stopping Audio track

我猜这与4/82缓冲区有关,只编码了4帧。我已经把从解码器得到的所有缓冲区都写进了多路复用器,我认为有82个缓冲区。presentationTime和标志与我从解码器获得的相同。正如我所说,这段代码适用于我的三星S3。你有什么想法是我的问题吗?会是比特率吗?谢谢

共有1个答案

厍书
2023-03-14

我发现字节缓冲区在某些情况下使用Position=Limit,所以我必须设置Position(info.Offset)、Limit(info.Offset-info.Size),就像很多例子(例如grafika)一样。由于这个原因,我一直在编码0长度的缓冲区,但只有4个数据。没有这一点,这在我的三星手机上运行良好,但在摩托罗拉手机上却不行。谢谢

 类似资料:
  • 我正在尝试使用MediaCodec和MediaMuxer对来自相机的视频和来自麦克风的音频进行编码。我在录制时使用OpenGL在图像上覆盖文本。 我以这些课程为例: http://bigflake.com/mediacodec/CameraToMpegTest.java.txt https://github.com/OnlyInAmerica/HWEncoderExperiments/blob/m

  • 我正在尝试使用android AudioRecord和MediaCodec对aac音频进行编码。我创建了一个非常类似于(使用Android MediaCodec从相机编码H.264)的编码器类。使用此类,我创建了一个AudioRecord实例,并告诉它将其byte[]数据读出到AudioEncoder(audioEncoder.offerEncoder(Data))。 这是我的音频记录设置 我成功

  • 我正在尝试使用使用编解码器对一些音频流进行编码。为此,我使用了google cts ExtractEncodeMust的这个实现。 对于某些aac文件,它会在编码某些帧后抛出。更准确地说,它会在第1030行抛出异常,。 我正在配置如下: 我完全不知道如何解决这个问题。任何形式的帮助都将不胜感激。 带有一些日志的堆栈跟踪: 设备:小米POCO x3 操作系统:Android10 导致溢出的示例文件信

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

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

  • 我正在尝试写一个基本的原始AAC数据到一个文件,希望我可以使用mp4parser封装它与一个视频轨道。为此,我需要将任何给定的音频文件编码为该格式。MediaCodec API从API16开始就很容易获得,所以我决定使用它来进行编解码操作。 我不确定为什么没有很多资源可以在线上关于这一点,可能是由于相关的复杂性。不过,我已经了解到基本的方法应该是: 通过MediaExtractor获取样本数据->