Как выбрать формат видео для воспроизведения в Интернете, Android и iOS?

Я работаю над проектом совместного использования видео и задаюсь вопросом, что, если есть видеоформат, совместимый с большинством игроков в Интернете, Android и iOS.

Приложение будет работать следующим образом:

  • пользователи могут снимать видео с мобильных устройств (iOS и Android).
  • другие пользователи могут воспроизводить видео на мобильных устройствах (iOS и Android) и веб-браузерах.

Я не знаком с различными видеоформатами. Я заметил, что .mov и .mp4 используются в iOS. Но я полагаю, что .mov не может воспроизводиться на Android и веб-браузерах, кроме Safari? Может ли кто-нибудь дать подсказку?

Ответы

Ответ 1

От Разработчик Android - Поддерживаемые форматы носителей,

Type  | Format /  | Supported File Type(s) /
      | Codec     | Container Formats
------+-----------+----------------------------------------------------------
Video | H.263     | 3GPP     (.3gp)
      |           | MPEG-4   (.mp4)
      +-----------+----------------------------------------------------------
      | H.264 AVC | 3GPP     (.3gp)
      |           | MPEG-4   (.mp4)
      |           | MPEG-TS  (.ts, AAC audio only, not seekable, Android 3.0+)
      +-----------+----------------------------------------------------------
      | H.265 HEVC| MPEG-4   (.mp4, Android 5.0+)
      +-----------+------------------------------------------------------
      | MPEG-4 SP | 3GPP     (.3gp)
      +-----------+----------------------------------------------------------
      | VP8       | WebM     (.webm)
      |           | Matroska (.mkv, Android 4.0+)
      +-----------+----------------------------------------------------------
      | VP9       | WebM     (.webm)
      |           | Matroska (.mkv, Android 4.0+)

С другой стороны, из iOS Developer Library - Media Layer,

iOS поддерживает множество стандартных форматов видео и стандартов сжатия, включая следующие:

  • Видео H.264, до 1,5 Мбит/с, 640 на 480 пикселей, 30 кадров в секунду, версия Low-Complexity базового профиля H.264 с аудио AAC-LC до 160 Кбит/с, 48 кГц, стерео аудио в форматах .m4v,.mp4 и .mov

  • Видео H.264, до 768 Кбит/с, 320 на 240 пикселей, 30 кадров в секунду, Базовый профиль до уровня 1.3 с аудио AAC-LC до 160 Кбит/с, 48 кГц, стереозвук в формате .m4v,.mp4 и .mov.

  • Видео MPEG-4, до 2.5 Мбит/с, 640 на 480 пикселей, 30 кадров в секунду, Простой профиль с аудио AAC-LC до 160 Кбит/с, 48 кГц, стерео аудио в .m4v,.mp4, и .mov

  • Многочисленные аудиоформаты, включая те, которые перечислены в Аудиотехнологии

Кроме того, из MDN - медиаформаты, поддерживаемые аудио и видео элементами HTML (тег <video> в HTML5),

  • <video>: VP8 и Vorbis в WebM
  • <video>: VP9 и Opus в WebM
  • <video>: Потоковая передача VP9 и Opus/VP8 и Opus в WebM через расширения источников мультимедиа (MSE)
  • <video>: Theora и Vorbis в Ogg
  • <video>: H.264 и MP3 в MP4
  • <video>: H.264 и AAC в MP4

Из всех данных кажется, что .mp4 (точнее, видео H.264, аудио AAC в MPEG-4) - это выбор здесь, поскольку он поддерживается на всех платформах (iOS, Android, веб-браузер). Однако учтите, что вам по-прежнему необходимо проверить проблемы совместимости на каждой платформе (другая версия Android, другой веб-браузер), которая объясняется на каждом сайте.

Ответ 2

Добавление дополнительной информации от Эндрю Т. Ответ.

Чтобы установить параметры из вывода Andrew:

// To Set Audio Encoder: AAC
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

// To set Video Encoder: H264
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

// To set Output Video format: mp4
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

Надеюсь, это поможет...!!!