Мы использовали как реализацию для нашего приложения для редактирования видео. В основном мы использовали реализацию MediaCodec, если версия для Android> = 4.3 и использовать FFMPEG в противном случае.
Проблема с использованием FFMPEG:
- Как вы сказали, процессор интенсивный процесс, таким образом, потребляют больше энергии
- x264 кодер под лицензией GPL, так что вы можете захотеть использовать OpenH264 кодер вместо которые поддерживают только Baseline Профиль, поэтому качество видео не является лучшим
- Поскольку используется программный кодировщик, скорость обработки данных относительно медленно, по крайней мере, по сравнению с реализацией MediaCodec
MediaCodec также имеют некоторые недостатки, хотя, например:
- Если вы хотите сделать транскодирование, андроид версии должны быть> = 4.3, если вы не хотите иметь дело с преобразованием формата цвета самостоятельно, совершенно беспорядок, так как каждый у поставщика может быть собственная реализация цветового формата. (Начиная с версии 4.3, поддержка MediaCodec с использованием входной поверхности)
- Аппаратный кодер может вести себя по-разному для разных моделей. (Например, некоторые кодер может производит B кадры, которые еще не поддерживаются андроид MediaMuxer, так что вы можете использовать FFmpeg для мультиплексирования части)
Так что я должен сказать, если вы только поддержать новый андроид версии, вы должны используйте mediacodec, но если вы хотите быть в безопасности (проще писать код, который работает на всех устройствах) и не имеет против производительности, используйте FFMPEG с OpenH264