web-dev-qa-db-fra.com

Comment choisir un format vidéo à lire sur le Web, Android & iOS?

Je travaille sur un projet de partage de vidéos et je me demande s'il existe un format vidéo compatible avec la plupart des lecteurs sur le Web, Android et iOS.

L'application fonctionnera comme ceci:

  1. les utilisateurs peuvent prendre des vidéos à partir d'appareils mobiles (iOS et Android)
  2. d'autres utilisateurs peuvent lire des vidéos sur des appareils mobiles (iOS et Android) et des navigateurs Web.

Je ne connais pas les différents formats vidéo. J'ai remarqué que .mov et .mp4 sont utilisés dans iOS. Mais je suppose que .mov ne peut pas être lu sur Android et les navigateurs Web sauf Safari? Quelqu'un pourrait-il donner un indice?

16
cannabis

De Développeur Android - Formats multimédias pris en charge ,

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+)

D'autre part, à partir de iOS Developer Library - Media Layer ,

iOS prend en charge de nombreux formats vidéo et normes de compression standard de l'industrie, notamment les suivants:

  • Vidéo H.264, jusqu'à 1,5 Mbps, 640 par 480 pixels, 30 images par seconde, version à faible complexité du profil de base H.264 avec audio AAC-LC jusqu'à 160 Kbps, 48 ​​kHz, audio stéréo en .m4v, Formats de fichier .mp4 et .mov

  • Vidéo H.264, jusqu'à 768 Kbps, 320 par 240 pixels, 30 images par seconde, profil de base jusqu'au niveau 1.3 avec audio AAC-LC jusqu'à 160 Kbps, 48 ​​kHz, audio stéréo en .m4v, .mp4 et. formats de fichiers mov

  • Vidéo MPEG-4, jusqu'à 2,5 Mbps, 640 par 480 pixels, 30 images par seconde, profil simple avec audio AAC-LC jusqu'à 160 Kbps, 48 ​​kHz, audio stéréo aux formats de fichiers .m4v, .mp4 et .mov

  • De nombreux formats audio, y compris ceux répertoriés dans Technologies Audio

Aussi, à partir de MDN - Formats multimédias pris en charge par les éléments audio et vidéo HTML (<video> tag en HTML5),

  • <video>: VP8 et Vorbis dans WebM
  • <video>: VP9 et Opus dans WebM
  • <video>: Streaming WebM via MSE
  • <video>: Theora et Vorbis à Ogg
  • <video>: H.264 et MP3 en MP4
  • <video>: H.264 et AAC en MP4
  • <video>: FLAC en MP4

De toutes les données, il semble que . Mp4 (pour être exact, vidéo H.264, audio AAC, en MPEG-4 ) est le choix ici, car il est pris en charge sur toutes les plateformes (iOS, Android, navigateur Web). Cependant, notez que vous devez toujours vérifier les problèmes de compatibilité sur chaque plate-forme (version différente d'Android, navigateur Web différent), ce qui est expliqué sur chaque site.

40
Andrew T.

Ajout d'informations supplémentaires à partir de la réponse d'Andrew T.

Pour définir les paramètres à partir de la conclusion d'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);

J'espère que ça aide...!!!

1
Chintan Soni