2016-12-25 18 views
2

Я пытаюсь определить лучшие параметры кодирования или кодирования для воспроизведения видео высокого разрешения (качества) на телефоне Android, насколько это возможно. Меня не волнует размер файла, он может быть в три раза больше размера «правильно сжатого» видео до тех пор, пока он воспроизводится плавно. Все кодировщики оптимизированы для наилучшего качества как можно меньшего размера по умолчанию за счет вычислительной мощности, необходимой для декодирования видео. Я бы хотел оптимизировать вычислительную мощность за счет размера файла.Какой видеокодер дает лучшую производительность на устройстве Android для заданного качества?

Итак, я хотел бы знать, как эффективно освободить декодер за счет увеличения размера файла, чтобы видео воспроизводилось без каких-либо артефактов или зависаний.

Может ли кто-нибудь порекомендовать технику для достижения этой цели?

Чтобы уточнить: у меня есть локально доступный файл с очень высоким качеством (1440p), который я бы хотел перекодировать до максимально возможного воспроизведения/качества, не заботясь о размере файла (1080p +).

Спасибо.

+0

Потоковый или полностью локально доступный файл? Учитывая, что существуют существующие рекомендации: https://developer.android.com/guide/topics/media/media-formats.html - пытаетесь ли вы составить диаграмму производительности декодирования или что-то в этом роде? –

+0

Я добавил это к исходному сообщению, чтобы быть более понятным - Чтобы уточнить: у меня есть доступный локально доступный файл с очень высоким качеством, который я бы перекодировал на максимально возможное количество воспроизводимых разрешений/качества, не заботясь о файле размер. –

+0

И вы перекодируете на устройстве Android или на стороне сервера? Обратите внимание, что возможность декодирования зависит от устройства (размер процессора и экрана). Если вы перекодируете на устройстве - ваши параметры ограничены (ffmpeg) или встроенным кодеком (http://stackoverflow.com/questions/24427034/android-video-encoding-and-deocding-native-level), поэтому любой тест будет для вашего устройства. –

ответ

4

Для кодирования видео общая рекомендация - использовать 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.