Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用IOMX列出组件名称和型号时未找到编码器,但android仍可以录制带有H264编码帧的.mp4文件_Android_Media Player_Stagefright - Fatal编程技术网

使用IOMX列出组件名称和型号时未找到编码器,但android仍可以录制带有H264编码帧的.mp4文件

使用IOMX列出组件名称和型号时未找到编码器,但android仍可以录制带有H264编码帧的.mp4文件,android,media-player,stagefright,Android,Media Player,Stagefright,我一直在尝试使用IOMX列出android设备中所有受支持的编解码器,如绑定媒体播放器服务所示。我让我的代码工作,并得到组件列表。但我观察到没有编码器组件。仅列出了所有解码器组件。然后我转到android提供的内置摄像头应用程序,开始录制以mp4文件格式存储的视频。当我从VLC播放器检查mp4文件的编解码器信息时,它显示“H264 mpeg4 part10 avc”。所以我的疑问来了。如果没有为h264/avc编码列出的组件,那么android如何以h264格式编码帧 有什么建议吗? 谢谢。在a

我一直在尝试使用IOMX列出android设备中所有受支持的编解码器,如绑定媒体播放器服务所示。我让我的代码工作,并得到组件列表。但我观察到没有编码器组件。仅列出了所有解码器组件。然后我转到android提供的内置摄像头应用程序,开始录制以mp4文件格式存储的视频。当我从VLC播放器检查mp4文件的编解码器信息时,它显示“H264 mpeg4 part10 avc”。所以我的疑问来了。如果没有为h264/avc编码列出的组件,那么android如何以h264格式编码帧

有什么建议吗?
谢谢。

在android发行版中,有一套编解码器由谷歌捆绑,通常被称为“普通的编解码器”。对于H.264,有一个编码器捆绑在一起,其来源位于
frameworks/av/media/libstagefright/codecs/avc/enc/
。因此,当您从相机编码时,将使用此默认编解码器对帧进行编码。要验证这一点,可以在
OMXCodec
ACodec
中启用日志,并观察编码器组件的名称是否为
OMX.google.h264.encoder


编解码器的完整列表可在
SoftOMXPlugin.cpp
frameworks/av/media/libstagefright/omx/

中找到。是的,您应该能够。从Stagefright的角度来看,基于软件的纯香草组件类似于用户集成组件。您是否建议选择libstagefright与媒体播放器服务中的IOMX相比更适合媒体操作和组件列表?是的。为便于集成,请使用
OMXCodec
ACodec
对象来抽象底层编解码器。如果你的应用程序是一个更高级的软件,那么你可能需要考虑<代码> MyAccoDEC < /Cord>对象抽象,这是一个上面的代码层> ACODEC 。