2014-10-29 4 views
1

Я могу записывать (кодировать) видео с помощью MediaCodec и MediaMuxer. Затем мне нужно работать с аудио-частью и аудио мультиплексором с видео с помощью MediaCodec и MediaMuxer.Как записывать видео и аудио с помощью MediaCodec и MediaMuxer

я столкнулся с двумя проблемами:

  1. Как кодировать аудио с MediaCodec. Нужно ли кодировать аудио и видео в отдельных потоках?

  2. Как передать аудио и видео данные в MediaMuxer (как метод writeSampleData() принимает только один тип данных за раз)?

Я ссылался на MediaMuxerTest, но использует MediaExtractor. Мне нужно использовать MediaCodec, поскольку видеокодирование выполняется с помощью MediaCodec. Пожалуйста, поправьте меня, если я ошибаюсь.

Любое предложение или совет будут очень полезны, поскольку для этих новых API нет надлежащей документации.

Примечание:

  1. Мое приложение ориентирована на API 18+ (Android 4.3+).
  2. Я передал Grafika для кодирования видео.

ответ

5
  1. Нет, вам не обязательно нужен отдельный поток для аудио, просто использовать два отдельных MediaCodec экземпляров.

  2. Первый параметр writeSampleData - trackIndex, который позволяет указать, к какому треку соответствует каждый пакет. (При запуске addTrack дважды, один раз для каждой дорожки, вы получаете два отдельных идентификатора дорожки.)

Смежные вопросы