在媒体codec.configure非法异常 [英] Illegal Exception on MediaCodec.configure

查看:1676
本文介绍了在媒体codec.configure非法异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想学习EN code一个MP4或使用相机任何类型的视频文件是在previewFrame回电。

目前,我正尝试从这个职位的例子codeS

<一个href=\"http://stackoverflow.com/questions/13458289/encoding-h-264-from-camera-with-android-media$c$cc\">Encoding从相机H.264与Android媒体codeC

不幸的是,我不断收到对一个IllegalException

媒体codec.configure(mediaFormat,NULL,NULL,媒体codec.CONFIGURE_FLAG_EN code);

这是另一篇文章
<一href=\"http://stackoverflow.com/questions/17233835/illegalstateexception-when-media$c$cc-configure-android\">IllegalStateException当媒体codec.configure的Andr​​oid ,
我注意到,有一些强制性的价值观我要为媒体codeC设置。

我试过强制媒体codeC的所有强制值,但仍然没有得到过去的运气

在IllegalException。

现在我还挺运行的想法去尝试的。任何建议,意见或提示将大大AP preciated。

感谢

  12月11日至4日:27:14.785 175-894 /? E /毫米libcamera2:轮廓HAL:停止preVIEW():E:1383596834.803557773
12月11日至4日:27:14.795 174-175 /? E / OMXNodeInstance:!!!观察员死亡。很快,有所为有所不为,...什么...
12月11日至4日:27:14.795 208-5797 /? E /毫米相机:config_shutdown_pp相机不在流模式。返回。
12月11日至4日:27:14.795 208-5797 /? E /毫米相机:vfe_ops_deinit:电子
12月11日至4日:27:14.825 175-5814 /? E / OMX-VENC-720P如下:ioctl VEN_IOCTL_CMD_READ_NEXT_MSG失败
12月11日至4日:27:14.825 174-175 /? E / OMX-VENC-720P:摧毁C2D实例
12月11日至4日:27:14.835 527-539 /? E / qcom_sensors_hal:hal_process_report_ind:不良商品质量:11
12月11日至4日:28:17.642 6241-6247 /? E / JDWP:无法发送回复调试器:断的管
12月11日至4日:28:17.912 527-539 /? E / qcom_sensors_hal:hal_process_report_ind:不良商品质量:11
12月11日至4日:28:17.922 208-6264 /? E /毫米相机:sensor_load_chromatix:libchromatix_imx111_ preview.so:30
12月11日至4日:28:18.032 208-6264 /? E /毫米相机:vfe_ops_init:电子
12月11日至4日:28:18.042 208-6264 /? E /毫米相机:vfe_legacy_stats_buffer_init:AEC_STATS_BUFNUM
12月11日至4日:28:18.052 208-6264 /? E /毫米相机:vfe_legacy_stats_buffer_init:AEC_STATS_BUFNUM
12月11日至4日:28:18.052 208-6264 /? E /毫米相机:mctl_init_stats_proc_info:snap_max_line_cnt = 30096
12月11日至4日:28:18.213 6241-6241 /? E / CamcorderProfile:宽度:720
12月11日至4日:28:18.213 6241-6241 /? E / CamcorderProfile:身高:480
12月11日至4日:28:18.213 6241-6241 /? E / CamcorderProfile:audioSampleRate:48000
12月11日至4日:28:18.213 6241-6241 /? E / CamcorderProfile:videoBitRate:500万支
12月11日至4日:28:18.213 6241-6241 /? E / CamcorderProfile:videoFrameRate:30
12月11日至4日:28:18.233 175-617 /? E / OMX-VENC-720P:是组件安全0
12月11日至4日:28:18.263 6241-6280 /? E / A $ C $抄送:[OMX.qcom.video.en coder.avc]不支持彩色格式19
12月11日至4日:28:18.263 6241-6280 /? E / A $ C $抄送:[OMX.qcom.video.en coder.avc]配置codeC返回错误-2147483648
12月11日至4日:28:18.263 6241-6279 /? E /媒体codeC:codeC报告了一个错误。 (OMX错误0x80001001,-2147483648 InternalError该)
12月11日至4日:28:18.263 6241-6241 /? E / AndroidRuntime:致命异常:主要
    java.lang.IllegalStateException
            在android.media.Media codec.native_configure(本机方法)
            在android.media.Media codec.configure(媒体codec.java:259)
            在com.example.media codec.AvcEn $ C $为CR INIT&GT;(AvcEn coder.java:40)。
            在com.example.media codeC preview.surfaceCreated(媒体codecActivity.java:304)。
            在android.view.SurfaceView.updateWindow(SurfaceView.java:571)
            在android.view.SurfaceView.access $ 000(SurfaceView.java:86)
            在android.view.SurfaceView $ 3.on preDraw(SurfaceView.java:175)
            在android.view.ViewTreeObserver.dispatchOn preDraw(ViewTreeObserver.java:833)
            在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1860)
            在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
            在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:5481)
            在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:749)
            在android.view.Choreographer.doCallbacks(Choreographer.java:562)
            在android.view.Choreographer.doFrame(Choreographer.java:532)
            在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:735)
            在android.os.Handler.handleCallback(Handler.java:730)
            在android.os.Handler.dispatchMessage(Handler.java:92)
            在android.os.Looper.loop(Looper.java:137)
            在android.app.ActivityThread.main(ActivityThread.java:5103)
            在java.lang.reflect.Method.invokeNative(本机方法)
            在java.lang.reflect.Method.invoke(Method.java:525)
            在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)
            在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            在dalvik.system.NativeStart.main(本机方法)
12月11日至4日:28:20.135 175-617 /? E /毫米libcamera2:轮廓HAL:停止preVIEW():E:1383596900.149872429
12月11日至4日:28:20.135 175-575 /? E / OMXNodeInstance:!!!观察员死亡。很快,有所为有所不为,...什么...
12月11日至4日:28:20.135 208-6264 /? E /毫米相机:config_shutdown_pp相机不在流模式。返回。
12月11日至4日:28:20.145 208-6264 /? E /毫米相机:vfe_ops_deinit:电子
12月11日至4日:28:20.165 175-6283 /? E / OMX-VENC-720P如下:ioctl VEN_IOCTL_CMD_READ_NEXT_MSG失败
12月11日至4日:28:20.165 175-575 /? E / OMX-VENC-720P:摧毁C2D实例
12月11日至4日:28:20.195 527-539 /? E / qcom_sensors_hal:hal_process_report_ind:不良商品质量:11


解决方案

  E / A $ C $抄送:[OMX.qcom.video.en coder.avc]做不支持彩色格式19

看起来像你想的是Qualcomm设备上使用的颜色格式19(COLOR_FormatYUV420Planar,A / K / A I420)。在我的设备之一快速测试表明其codeCS想要的颜色格式21(COLOR_FormatYUV420SemiPlanar,A / K / A NV12)。

缓冲区到缓冲区测试在恩codeDE codeTEST来源演示如何查询媒体codecInfo 一个合适的颜色格式。既然你是从摄像机接收输入,你将要设置的preVIEW格式半平面布局(NV21),然后做的 U / V交换前递给媒体codeC。

如果您有Android 4.3或更高版本,可以跳过所有格式体操,并使用表面 preVIEW输出。见href=\"http://bigflake.com/media$c$cc/#CameraToMpegTest\" rel=\"nofollow\"> CameraToMpegTest来源一个例子

I am trying to learn to encode a mp4 or any sort of video file using the Camera's onPreviewFrame call back.

Currently, I am trying the example codes from this post

Encoding H.264 from camera with Android MediaCodec

Unfortunately, I am keep getting an IllegalException on the

mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);

From another post IllegalStateException when MediaCodec.configure Android, I notice that are some mandatory values I have to set for the MediaCodec.

I tried all the mandatory mediacodec's mandatory values but still no luck of getting past

the IllegalException.

Now I am kinda of running out of ideas to try. Any suggestions, opinions or hints would be greatly appreciated.

thanks

11-04 12:27:14.785      175-894/? E/mm-libcamera2﹕ PROFILE HAL: stopPreview(): E: 1383596834.803557773
11-04 12:27:14.795      175-175/? E/OMXNodeInstance﹕ !!! Observer died. Quickly, do something, ... anything...
11-04 12:27:14.795     208-5797/? E/mm-camera﹕ config_shutdown_pp Camera not in streaming mode. Returning.
11-04 12:27:14.795     208-5797/? E/mm-camera﹕ vfe_ops_deinit: E
11-04 12:27:14.825     175-5814/? E/OMX-VENC-720p﹕ ioctl VEN_IOCTL_CMD_READ_NEXT_MSG failed
11-04 12:27:14.825      175-175/? E/OMX-VENC-720p﹕ Destroy C2D instance
11-04 12:27:14.835      527-539/? E/qcom_sensors_hal﹕ hal_process_report_ind: Bad item quality: 11
11-04 12:28:17.642    6241-6247/? E/jdwp﹕ Failed sending reply to debugger: Broken pipe
11-04 12:28:17.912      527-539/? E/qcom_sensors_hal﹕ hal_process_report_ind: Bad item quality: 11
11-04 12:28:17.922     208-6264/? E/mm-camera﹕ sensor_load_chromatix: libchromatix_imx111_preview.so: 30
11-04 12:28:18.032     208-6264/? E/mm-camera﹕ vfe_ops_init: E
11-04 12:28:18.042     208-6264/? E/mm-camera﹕ vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM
11-04 12:28:18.052     208-6264/? E/mm-camera﹕ vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM
11-04 12:28:18.052     208-6264/? E/mm-camera﹕ mctl_init_stats_proc_info: snap_max_line_cnt =30096
11-04 12:28:18.213    6241-6241/? E/CamcorderProfile﹕ width: 720
11-04 12:28:18.213    6241-6241/? E/CamcorderProfile﹕ height: 480
11-04 12:28:18.213    6241-6241/? E/CamcorderProfile﹕ audioSampleRate: 48000
11-04 12:28:18.213    6241-6241/? E/CamcorderProfile﹕ videoBitRate: 5000000
11-04 12:28:18.213    6241-6241/? E/CamcorderProfile﹕ videoFrameRate: 30
11-04 12:28:18.233      175-617/? E/OMX-VENC-720p﹕ Is component secure 0
11-04 12:28:18.263    6241-6280/? E/ACodec﹕ [OMX.qcom.video.encoder.avc] does not support color format 19
11-04 12:28:18.263    6241-6280/? E/ACodec﹕ [OMX.qcom.video.encoder.avc] configureCodec returning error -2147483648
11-04 12:28:18.263    6241-6279/? E/MediaCodec﹕ Codec reported an error. (omx error 0x80001001, internalError -2147483648)
11-04 12:28:18.263    6241-6241/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException
            at android.media.MediaCodec.native_configure(Native Method)
            at android.media.MediaCodec.configure(MediaCodec.java:259)
            at com.example.mediacodec.AvcEncoder.<init>(AvcEncoder.java:40)
            at com.example.mediacodec.Preview.surfaceCreated(MediaCodecActivity.java:304)
            at android.view.SurfaceView.updateWindow(SurfaceView.java:571)
            at android.view.SurfaceView.access$000(SurfaceView.java:86)
            at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:175)
            at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:833)
            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1860)
            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
            at android.view.Choreographer.doCallbacks(Choreographer.java:562)
            at android.view.Choreographer.doFrame(Choreographer.java:532)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5103)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
11-04 12:28:20.135      175-617/? E/mm-libcamera2﹕ PROFILE HAL: stopPreview(): E: 1383596900.149872429
11-04 12:28:20.135      175-575/? E/OMXNodeInstance﹕ !!! Observer died. Quickly, do something, ... anything...
11-04 12:28:20.135     208-6264/? E/mm-camera﹕ config_shutdown_pp Camera not in streaming mode. Returning.
11-04 12:28:20.145     208-6264/? E/mm-camera﹕ vfe_ops_deinit: E
11-04 12:28:20.165     175-6283/? E/OMX-VENC-720p﹕ ioctl VEN_IOCTL_CMD_READ_NEXT_MSG failed
11-04 12:28:20.165      175-575/? E/OMX-VENC-720p﹕ Destroy C2D instance
11-04 12:28:20.195      527-539/? E/qcom_sensors_hal﹕ hal_process_report_ind: Bad item quality: 11

解决方案

E/ACodec﹕ [OMX.qcom.video.encoder.avc] does not support color format 19

Looks like you're trying to use color format 19 (COLOR_FormatYUV420Planar, a/k/a I420) on a Qualcomm device. A quick test on one of my devices indicates their codecs want color format 21 (COLOR_FormatYUV420SemiPlanar, a/k/a NV12).

The buffer-to-buffer tests in the EncodeDecodeTest sources show how to query the MediaCodecInfo for an appropriate color format. Since you are receiving input from the Camera, you will want to set the preview format to a semi-planar layout (NV21), and then do the U/V swap before handing it to the MediaCodec.

If you have Android 4.3 or later, you can skip all of the format gymnastics and use the Surface preview output. See the CameraToMpegTest sources for an example.

这篇关于在媒体codec.configure非法异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆