У меня есть приложение, которое получает данные в виде байта из onPreviewFrame и переходит к моему кодеру, который является другим классом, реализующим медиакодек api для android, чтобы получить данные и сделать видеофайл. Он работает с файлом с форматом «видео/avc», но сбой «mpeg4» с показом ошибки потока. Что может быть причиной?Сбой приложения для Android при конвертировании с медиакодеком с форматированием MP4?
ответ
Изучите отличное объяснение на http://bigflake.com/mediacodec/. В частности, MediaCodec.createEncoderByType(MIME_TYPE)
может генерировать исключение. Возможно, ваше устройство ожидает «video/mp4v-es» для видео в формате MPEG4.
Если возможно, предпочтительно использовать MediaCodec.findEncoderForFormat(MediaFormat)
.
для "видео/AVC" App работы отлично подходит для Samsung Galaxy Note 3, но создайте проблему на Nexus 5, Galaxy s3 neo. Как я могу это исправить? Любая идея? Я изучаю ваш ресурс и пытаюсь его исправить. –
Вот как он построен, к сожалению. тип, который гарантированно будет доступен для всех devi цы. –
Есть ли другой API, который может поддерживать различные устройства? Есть ли API низкого уровня, который может поддерживать минимум API 14? –
показать код, а также опубликовать свой журнал cat –
MediaFormat mediaFormat = MediaFormat.createVideoFormat («video/avc», 800, 480); // У меня проблема. "Видео/АВК" отлично работает, но видео/другое»создают проблемы // 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(); –