Android媒体编解码器:无法为'type 'video/mp4''实例化解码器。

3

我将开始翻译mediamuxer类的实现。它从mediacodec类中获取输入(一个音频和一个视频)。但是,在尝试对“video/mp4”进行编码时,会出现错误。

代码:

String mime = MimeTypeMap.getSingleton()
                .getMimeTypeFromExtension("mp4");
        codec = MediaCodec.createEncoderByType(mime);

错误:

Unable to instantiate a decoder for type 'video/mp4'

请注意,错误是针对解码器,而调用的是创建编码器的函数。

我可能很快就能弄清楚这个问题,但这里留下来给其他遇到同样问题的人参考。

1个回答

6

在摸索了很久后,我找到了文档:Android 推荐的媒体格式,但是根据 dbrofadden 的示例,MediaMuxer 可以使用以下类型的 MediaEncoder 输入创建一个基本的 H.264 流,并将其混合到 MP4 文件中:

private static final String VIDEO_MIME_TYPE = "video/avc";
private static final String AUDIO_MIME_TYPE = "audio/mp4a-latm";

1
需要使用Android Dev Support中所提到的确切字符串。比如,像"video/avc"这样 - H.264/AVC视频。 - Abhijeet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接