Экземпляры Android MediaCodec - PullRequest
0 голосов
/ 27 мая 2019

Могут ли устройства Android надежно выполнять кодирование и декодирование видео с помощью MediaCodec?

Я создал систему Encode Decode, которая способна объединять видео в формате 1080p.Он использует два экземпляра MediaCodec одновременно, с поверхностью GLES (для упрощения замены входного кодека и добавления некоторых эффектов).

Я тестировал на разных> устройствах API21.Все тесты проводились с видео, снятыми одним и тем же устройством, с одинаковыми конфигурациями кодеков (поэтому все тесты проводились с использованием поддерживаемых видеокодеков - все были закодированы с использованием h.264).

Хорошо работает на многих устройствах, но:

  • на некоторых устройствах после «точки сшивания» присутствуют артефакты кодирования.Анализ кадров выходного видео показывает ошибки в PTS, близкие к точке сшивания (гораздо более длительное или короткое время кадров).Эти артефакты, вероятно, вызваны тем, что проигрыватель декодирует плохо кодированное видео (при наличии ошибок PST)

  • на нескольких устройствах полученное видео является технически совершенным (нет ошибок в кадрах или в кадрах).кодирование) но само видео совершенно неверно, содержит только поврежденные кадры (а иногда и частично обрезанный экран).Здесь похоже, что декодирование (в то время как Decoding-Encoding) видео не было успешным.

Нет ошибок, ни журналов ни в каком случае.Все устройства были вполне способны кодировать исходные видео, и все устройства способны воспроизводить эти видео.Но похоже, что эти устройства не способны обрабатывать кодирование и декодирование одновременно.

Возможно ли это?Может ли MediaCodec быть реализован так, чтобы он не выдавал исключение, если базовая архитектура выполняет задачу, которую она не может успешно выполнить?

...