jjzjj

MediaCodec

全部标签

android - Android 上的 MediaCodec 音频/视频混合问题

我正在根据Google给出的示例(https://android.googlesource.com/platform/cts/+/master/tests/tests/media/src/android/media/cts/ExtractDecodeEditEncodeMuxTest.java)对视频进行转码基本上,MP4文件的转码工作正常,但在某些手机上我得到一些奇怪的结果。例如,如果我在HTCOne上对带有音频的视频进行转码,代码不会给出任何错误,但文件随后无法在手机上播放。如果我有一个10秒的视频,它几乎会跳到最后一秒,而你只会听到一些噼啪声。如果您使用VLC播放视频,音轨将完全

android - 使用 MediaCodec 创建 AAC 编码器时出错

问题很简单,但是我没有任何解决的线索:我写了一行代码在我的Nexus4(Android4.4.2)上创建一个AAC编码器MediaCodeccodec=MediaCodec.createEncoderByType("audio/mp4a-latm");保存在“codec”中的返回值不为null,但我在Logcat中收到红色错误信息:03-2015:25:08.985:E/OMXMaster(24517):Acomponentofname'OMX.qcom.audio.decoder.aac'alreadyexists,ignoringthisone.我也试过另一条线:MediaCode

android - 如何防止由 MediaCodec.dequeueInputBuffer 生成的 java.lang.IllegalStateException

以下代码偶尔会产生java.lang.IllegalStateException:intiInputBufIndex=_mcDecoder.dequeueInputBuffer(TIMEOUT_USEC);其中_mcDecoder是MediaCodec的一个实例。解码后的流是H.264视频。该代码在大多数情况下都运行良好。有没有办法主动检查MediaCodec的状态来避免这个异常?堆栈跟踪:java.lang.IllegalStateExceptionatandroid.media.MediaCodec.dequeueInputBuffer(NativeMethod)atnet.myd

android - 如何播放 MediaCodec 编码器生成的原始 h264?

我对MediaCodec(以及一般的视频编码/解码)有点陌生,所以如果我在这里说的有错,请纠正我。我想用VLC/ffplay播放MediaCodec的原始h264输出。我需要这个来播放,因为我的最终目标是将一些实时视频流式传输到计算机,而MediaMuxer只在磁盘上生成一个文件,而不是我可以以(非常)低延迟流式传输到桌面的文件。(我对其他解决方案持开放态度,但我还没有找到适合延迟要求的任何其他解决方案)这是我使用的编码视频并将其写入文件的代码:(它基于找到的MediaCodec示例here,仅删除了MediaMuxer部分)packagecom.jackos2500.droidtop

android - 将 Android MediaCodec 编码的 H264 数据包复用到 RTMP 中

我来自一个线程EncodingH.264fromcamerawithAndroidMediaCodec.我的设置非常相似。但是,我尝试使用javacv编写多路编码帧并通过rtmp广播它们。RtmpClient.java...privatevolatileBlockingQueuemFrameQueue=newLinkedBlockingQueue(MAXIMUM_VIDEO_FRAME_BACKLOG);...privatevoidstartStream()throwsFrameRecorder.Exception,IOException{if(TextUtils.isEmpty(mD

android - mediacodec 与 mediaplayer 和 mediarecorder

我对如何在Android中播放和录制视频/音频感到有点困惑。我真的不明白在什么情况下应该使用这些类:-播放:MediaPlayervsMediaExtractor+MediaCodec-录制:MediaRecordervsMediaCodec+MediaMuxer我什么时候必须使用其中一种?对不起,如果这是一个重复的问题,我认为它应该是一个常见的问题,但我还没有找到。 最佳答案 如果高级接口(interface)(MediaPlayer、MediaRecorder)可以做你想做的事情(从系统支持的格式播放视频到显示器,或者将来自相机

android - 同步来自 Mediacodec 的解码音频和视频数据

我想使用MediaExtractor和MediaCodecAPI编写一个简单的音频/视频播放器。我能够解码和呈现音频和视频。但是,我缺少audio-video同步。我找不到任何API来控制audio和video之间的同步。有人能告诉我,如何同步解码的audio和video数据吗? 最佳答案 在Android源代码中,有一个基于MediaCodecAPI的示例player引擎实现。您可以检查位于frameworks/av/cmds/stagefright/SimplePlayer.cpp的SimplePlayer.在这个播放器引擎实现

android - 调用 MediaCodec.configure() 时出现非法状态异常

我在MediaCodec.configure()行收到IllegalStateException,我正在尝试使用MediaCodec录制音频。这只发生在某些手机上,在选项卡上一切都很好。这个特殊的崩溃示例来自SamsungGalaxyS4。异常痕迹:01-2217:33:38.379:V/ACodec(16541):[OMX.google.aac.decoder]NowLoaded01-2217:33:38.379:V/ACodec(16541):onConfigureComponent01-2217:33:38.379:W/ACodec(16541):[OMX.google.aac.

android - 如何使用 MediaCodec 从视频中获取位图(帧)

我正在尝试使用MediaCodec从视频文件中获取所有帧。如果我尝试在SurfaceView上显示视频,一切正常。但是如果surface为null,当我尝试从字节数组中获取Bitmap时,总是会获取null或运行时异常。这是我的代码:privateclassPlayerThreadextendsThread{privateMediaExtractorextractor;privateMediaCodecdecoder;privateSurfacesurface;publicPlayerThread(Surfacesurface){this.surface=surface;}@Overr

android - MediaCodec 如何在 Android 的框架内找到编解码器?

我正在尝试了解MediaCodec如何用于硬件解码。我对android内部的了解非常有限。这是我的发现:android系统中有一个xml文件,表示编解码器的详细信息。device/ti/omap3evm/media_codecs.xmlforanexample.这意味着,如果我们使用媒体编解码器从Java应用程序创建编解码器MediaCodeccodec=MediaCodec.createDecoderByType(type);应该是在xml文件的帮助下找出各自的编码器。我在做什么?我试图找出代码的哪一部分正在读取xml并根据给定的“类型”找到编解码器。1)应用层:MediaCodec