2014-10-03 5 views
16

Sto lavorando a un progetto di condivisione video e mi chiedo se ci sia un formato video compatibile con la maggior parte dei giocatori sul Web, Android & iOS.Come scegliere un formato video da riprodurre su Web, Android e iOS?

L'applicazione funziona in questo modo:

  1. gli utenti possono prendere i video da dispositivi mobili (iOS e Android)
  2. altri utenti possono riprodurre i video su dispositivi mobili (iOS e Android) e browser web.

Non ho familiarità con diversi formati video. Ho notato che .mov e .mp4 sono usati in iOS. Suppongo che .mov non possa essere riprodotto su Android e browser Web ad eccezione di Safari? Qualcuno potrebbe dare un suggerimento?

risposta

36

Da Android Developer - Supported Media Formats,

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'altra parte, da iOS Developer Library - Media Layer,

iOS supporta molti formati video standard di settore e standard di compressione, inclusi i seguenti:

  • H.264 video, fino a 1,5 Mbps, 640 x 480 pixel, 30 fotogrammi al secondo, Basso -Versione della complessità del profilo di base H.264 con audio AAC-LC fino a 160 Kbps, 48 ​​kHz, audio stereo nei formati di file .m4v, .mp4 e .mov

  • H.264 video, fino a 768 Kbps, 320 x 240 pixel, 30 fotogrammi al secondo, Profilo di base fino al livello 1.3 con audio AAC-LC fino a 160 Kbps, 48 ​​kHz, audio stereo nei formati di file .m4v, .mp4 e .mov

  • Video MPEG-4, fino a 2,5 Mbps, 640 x 480 pixel, 30 fotogrammi al secondo, profilo semplice con audio AAC-LC fino a 160 Kbps, 48 ​​kHz, audio stereo in formato .m4v, .mp4 e .mov

  • Numerosi formati audio, compresi quelli elencati in Audio Technologies

Inoltre, da MDN - Media formats supported by the HTML audio and video elements (<video> tag in HTML5),

  • <video>: VP8 e Vorbis in WebM
  • <video>: VP9 e Opus in WebM
  • <video> : Streaming VP9 e Opus/VP8 e Opus in WebM tramite Media S ource Extensions (MSE)
  • <video>: Theora e Vorbis in Ogg
  • <video>: H.264 e MP3 in MP4
  • <video>: H.264 e AAC in MP4

Da tutti i dati, sembra che .mp4 (per l'esattezza, video H.264, AAC audio, in formato MPEG-4) è la scelta qui, dal momento che è supportato su tutte le piattaforme (iOS, Android, browser Web). Tuttavia, tieni presente che devi ancora verificare i problemi di compatibilità su ciascuna piattaforma (versione diversa di Android, browser Web diverso), che viene spiegata su ciascun sito.

+0

dove è possibile trovare una soluzione universale? – Amanni

+0

ciao .. Suppongo che non ci sia encoder disponibile per HEVC su Android a partire da ora. Ciò significa che non è possibile codificare utilizzando HEVC. Solo un decoder è disponibile. Per favore correggimi se sbaglio @Andrew T –

1

Aggiunta di ulteriori informazioni dalla risposta di Andrew T..

per impostare i parametri dalla conclusione di 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); 

Speranza che aiuta ... !!!

Problemi correlati