【问题标题】:Android app crash while converting with media codec with MP4 formatting?使用 MP4 格式的媒体编解码器进行转换时 Android 应用程序崩溃?
【发布时间】:2017-04-26 16:11:11
【问题描述】:

我有一个应用程序,它从 onPreviewFrame 获取数据作为字节并传递给我的编码器,这是另一个实现 android 的媒体编解码器 api 的类获取数据并制作视频文件。它适用于格式为“video/avc”的文件,但会从“mpeg4”崩溃并显示线程错误。可能是什么原因?

【问题讨论】:

  • 显示一些代码并发布您的日志猫
  • MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", 800, 480); // 我在这里遇到问题。 “视频/avc”工作正常,但视频/其他“创建问题// mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 125000); mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 15); mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities. COLOR_FormatYUV420Planar); mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5); mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); mediaCodec.start();

标签: android multithreading video android-camera android-mediacodec


【解决方案1】:

请在http://bigflake.com/mediacodec/学习优秀的解释。具体来说,MediaCodec.createEncoderByType(MIME_TYPE) 可能会抛出异常。也许您的设备需要 "video/mp4v-es" 用于 MPEG4 视频。

如果可能,最好使用MediaCodec.findEncoderForFormat(MediaFormat)

【讨论】:

  • for "video/avc" App 在三星 Galaxy Note 3 上运行良好,但在 Nexus 5、Galaxy s3 neo 上出现问题。我该如何解决?任何想法 ?我正在研究你的资源并试图修复它
  • 不幸的是,这就是它的构建方式。没有一种 MIME 类型可以保证在所有设备上都可用。
  • 有没有其他API可以支持不同的设备?是否有任何低级 API 可以支持最低 API 14 到更高?
  • 查看优秀的libstreaming 项目。如果您查看饼图,API 14 并不值得担心。
猜你喜欢
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 2013-02-02
相关资源
最近更新 更多