O vídeo h.264 não é reproduzido no iOS
Eu tenho um arquivo de vídeo codificado com h.264 que não será reproduzido no iOS e gostaria de saber o motivo. Aqui está o HTML:
<video style="width: 480px; height: 360px;" autoplay controls>
<source src="sample.mp4">
</video>
Este vídeo é bom em um navegador de desktop, mas em dispositivos iOS, vejo um ícone do Play não clicável com uma barra nele. Eu li que isso significa que há um problema com a codificação do vídeo, mas não tenho certeza qual é o problema.
Corri o vídeo através do MediaInfo:
General
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 706 KiB
Duration : 15s 256ms
Overall bit rate mode : Variable
Overall bit rate : 379 Kbps
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 6 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 15s 250ms
Bit rate : 311 Kbps
Width : 480 pixels
Height : 360 pixels
Display aspect ratio : 4:3
Frame rate mode : Constant
Frame rate : 24.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.075
Stream size : 578 KiB (82%)
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 15s 256ms
Bit rate mode : Variable
Bit rate : 62.8 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Compression mode : Lossy
Stream size : 117 KiB (17%)
Além disso, eu o executei no GSpot e obtive algumas informações adicionais:
Container
isom: MP4 Base Media v1 [IS0 14496-12:2003]
- mp41: MP4 v1 [ISO 14496-1:ch13]
Alguém pode me dizerporque este vídeo não será reproduzido? Sei que posso simplesmente recodificar o vídeo e, se o fizer, ele será reproduzido corretamente no iOS. Mas eu gostaria de saber qual é o problema com o arquivo original.
Para comparação, aqui está a análise MediaInfo de uma versão recodificada que eu fiz (esta funciona):
General
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 990 KiB
Duration : 15s 256ms
Overall bit rate mode : Variable
Overall bit rate : 532 Kbps
Writing application : Lavf53.19.0
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 15s 250ms
Bit rate : 414 Kbps
Width : 480 pixels
Height : 360 pixels
Display aspect ratio : 4:3
Frame rate mode : Constant
Frame rate : 24.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.100
Stream size : 771 KiB (78%)
Writing library : x264 core 118 r2085 8a62835
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x111 / me=hex / subme=6 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=22.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 15s 256ms
Bit rate mode : Variable
Bit rate : 111 Kbps
Maximum bit rate : 128 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Compression mode : Lossy
Stream size : 207 KiB (21%)
As informações do GSpot sobre esse contêiner são diferentes (poderia ser por isso que este funciona?):
Container
isom: MP4 Base Media v1 [IS0 14496-12:2003]
- iso2: MP4 Base Media v2 [ISO 14496-12:2005]
- avc1: MP4 Base w/ AVC ext [ISO 14496-12:2005]
- mp41: MP4 v1 [ISO 14496-1:ch13]
A única outra coisa em que consigo pensar é o número de quadros de referência (eu li o máximo é 3), mas a versão recodificada tem 4, então acho que provavelmente não é isso.