Могут ли устройства Android надежно выполнять кодирование и декодирование видео с помощью MediaCodec?
Я создал систему Encode Decode, которая способна объединять видео в формате 1080p.Он использует два экземпляра MediaCodec одновременно, с поверхностью GLES (для упрощения замены входного кодека и добавления некоторых эффектов).
Я тестировал на разных> устройствах API21.Все тесты проводились с видео, снятыми одним и тем же устройством, с одинаковыми конфигурациями кодеков (поэтому все тесты проводились с использованием поддерживаемых видеокодеков - все были закодированы с использованием h.264).
Хорошо работает на многих устройствах, но:
на некоторых устройствах после «точки сшивания» присутствуют артефакты кодирования.Анализ кадров выходного видео показывает ошибки в PTS, близкие к точке сшивания (гораздо более длительное или короткое время кадров).Эти артефакты, вероятно, вызваны тем, что проигрыватель декодирует плохо кодированное видео (при наличии ошибок PST)
на нескольких устройствах полученное видео является технически совершенным (нет ошибок в кадрах или в кадрах).кодирование) но само видео совершенно неверно, содержит только поврежденные кадры (а иногда и частично обрезанный экран).Здесь похоже, что декодирование (в то время как Decoding-Encoding) видео не было успешным.
Нет ошибок, ни журналов ни в каком случае.Все устройства были вполне способны кодировать исходные видео, и все устройства способны воспроизводить эти видео.Но похоже, что эти устройства не способны обрабатывать кодирование и декодирование одновременно.
Возможно ли это?Может ли MediaCodec быть реализован так, чтобы он не выдавал исключение, если базовая архитектура выполняет задачу, которую она не может успешно выполнить?