Android - лучшее решение для преобразования записанных видео основного профиля H.264 в базовый профиль H.264
Я нашел MediaPlayer
не может воспроизводить видео, закодированные H.264 Main Profile
и я попробовал ExoPlayer
а также Vitamio
но никто из них не решил мою проблему. наконец-то я нашел лучшее решение - конвертировать видео в H.264 Baseline Profile
, FFmpeg
почти 9 МБ, и это очень тяжело для моего проекта, поэтому я не люблю использовать его для преобразования видео в этот профиль по командам. Мой друг предложил конвертировать видео на стороне сервера, но мы оба знаем, что у него плохая производительность. Что я должен делать? Как лучше всего решить эту проблему?
1 ответ
Технически Android поддерживает только H.264 Baseline, но многие из более новых (обычно высокопроизводительных устройств) будут также играть в H.264 Main Profile. Nexus 4,5,6,7 и 10 все делают, например. Итак, у вас есть несколько вариантов... Вы либо просто используете H.264 Main и не заботитесь о старых устройствах, которые его не поддерживают, либо вы конвертируете на стороне сервера. Выполнение преобразования на устройстве - плохая идея. Если он не поддерживает H.264 Baseline, это, вероятно, было сделано из соображений производительности, и было выполнено преобразование на устройстве, а затем декодирование приведет к разрушению ЦП.
Стоит отметить, что ExoPlayer будет использовать те же кодеки устройства, что и MediaPlayer, потому что это всего лишь оболочка для MediaCodec. Vitamio - это оболочка для ffmpeg, и может быть возможно предоставить основной кодек H.264 с настраиваемой сборкой ffmpeg, но, опять же, если его нет вообще, производительность, вероятно, была проблемой.