Для кодирования видео общая рекомендация - использовать H.264 с базовым профилем для широкой совместимости. Существует множество параметров для оптимизации видеоконтента (анимация против статической лекции против действия/спорта), но, как правило, разрешается до битрейта.
Любое устройство, которое имеет Google Play, должны соответствовать определению документа Android Compatibility, которые прописываются каковы ожидают частоту кадров и битрейт для различных размеров видео:
http://source.android.com/compatibility/7.0/android-7.0-cdd.html#5_3_4_h_264
реализации Android устройств с декодерами H.264:
- ДОЛЖЕН поддерживать основной профиль 3.1 и базовый профиль.
Поддержка ASO (произвольное упорядочение фрагментов), FMO (гибкое оформление макроблоков) и RS (избыточные фрагменты) являются ДОПОЛНИТЕЛЬНЫМИ.
- ДОЛЖЕН быть способен декодировать видео с SD (стандартная четкость) профили, перечисленные в следующей таблице, и закодированные с профилем Baseline и Основной уровень профиля 3.1 (включая 720p30).
- ДОЛЖЕН быть способен декодировать видео с профилями HD (High Definition) , как указано в следующей таблице.
- Кроме того, Android Телевизионные устройства —
- должен поддерживать High Profile Level 4.2 и HD 1080p60 профиль декодирования.
- ДОЛЖЕН быть способен декодировать видео с обоих профилей HD, как указано в следующей таблице, и закодированные с помощью либо базовый профиль, Main Profile, или High Profile Level 4.2
SD (Low quality) SD (High quality) HD 720p HD 1080p
Video resolution 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 px
Video frame rate 30 fps 30 fps 30 fps 30 fps
Video bitrate 800 Kbps 2 Mbps 8 Mbps 20 Mbps
в то время как Android имеет требования должны для SD видео, HD является должен но, скорее всего, реализуется в высоких конечных устройств.
Что касается использования энергии - с аппаратным декодированием, относительно распространенным на высокопроизводительных устройствах - экран по-прежнему является наиболее голодной частью воспроизведения видео, поэтому любые мысли о «сжатии» должны быть в отношении того, какие настройки будут обеспечивать наиболее визуально приемлемый контент, будучи как можно меньшим. Учитывая различия в содержании, «правильные» настройки обычно требуют немного экспериментов.
Кроме того, если вы доставляете устройство, вы должны позволить клиенту выбрать разрешение/качество, которое имеет смысл - то есть нет причин доставлять 1080p-файл на устройство 640x480.
Потоковый или полностью локально доступный файл? Учитывая, что существуют существующие рекомендации: https://developer.android.com/guide/topics/media/media-formats.html - пытаетесь ли вы составить диаграмму производительности декодирования или что-то в этом роде? –
Я добавил это к исходному сообщению, чтобы быть более понятным - Чтобы уточнить: у меня есть доступный локально доступный файл с очень высоким качеством, который я бы перекодировал на максимально возможное количество воспроизводимых разрешений/качества, не заботясь о файле размер. –
И вы перекодируете на устройстве Android или на стороне сервера? Обратите внимание, что возможность декодирования зависит от устройства (размер процессора и экрана). Если вы перекодируете на устройстве - ваши параметры ограничены (ffmpeg) или встроенным кодеком (http://stackoverflow.com/questions/24427034/android-video-encoding-and-deocding-native-level), поэтому любой тест будет для вашего устройства. –