【发布时间】:2011-09-19 20:11:14
【问题描述】:
我有一些 H.264 编码的视频可以在 Web 浏览器中以 HTML5 正确呈现,但在 iPad 上不能正确呈现。当我使用从 Internet 下载的 H.264 视频时,我的视频在 iPad 上可以正确呈现,所以这不是 HTML 问题。
这是关于我的视频的 ffmpeg 信息 --
我的原始 .mov 视频:
似乎流 1 编解码器帧速率与容器帧速率不同:6000.00 (6000/1) -> 30.00 (30/1)
输入 #0, mov,mp4,m4a,3gp,3g2,mj2, from 'a_video.mp4':
元数据:
major_brand : qt minor_version : 537199360 compatible_brands: qt时长:00:00:42.74,开始:0.000000,比特率:220 kb/s
Stream #0.0(eng): Audio: aac, 44100 Hz, stereo, s16, 94 kb/s Stream #0.1(eng): Video: h264, yuv420p, 762x464, 122 kb/s, 30 fps, 30 tbr, 3k tbn, 6k tbc
使用 Handbrake 将我的 .mov 转换为 mp4 后,却无法在 iPad 上呈现:
似乎流 0 编解码器帧速率与容器帧速率不同:180000.00 (180000/1) -> 29.97 (30000/1001)
输入#0, mov,mp4,m4a,3gp,3g2,mj2, from 'a_video.m4v':
元数据:
major_brand : mp42 minor_version : 0 compatible_brands: mp42isomavc1 encoder: HandBrake 0.9.5 2011010300时长:00:00:42.77,开始:0.000000,比特率:169 kb/s
流 #0.0(und):视频:h264、yuv420p、752x464 [PAR 381:376 DAR 381:232]、35 kb/s、PAR 145161:141376 DAR 145161:87232、29.97 fps、29.97 tbr、90k tbn , 180k 待定
流 #0.1(eng):音频:aac,44100 Hz,立体声,s16,128 kb/s
这是我在网上找到的一个 .mp4,它可以在 iPad 上呈现:
似乎流 1 编解码器帧速率与容器帧速率不同:180000.00 (180000/1) -> 25.00 (25/1)
输入#0, mov,mp4,m4a,3gp,3g2,mj2, from 'a_video_3_emu.mp4':
元数据: major_brand : M4VP
次要版本:1
compatible_brands: M4VPM4A mp42isom
编码器:CoreMediaAuthoring 677、CoreMedia 420.17、i386时长:00:01:38.01,开始:0.000000,比特率:1023 kb/s
流 #0.0(und):音频:aac,32000 Hz,单声道,s16,97 kb/s
流 #0.1(und):视频:h264、yuv420p、480x360 [PAR 1:1 DAR 4:3]、914 kb/s、25 fps、25 tbr、90k tbn、180k tbc
有人发现我的视频编码方式有问题吗?
编辑
起初我的理论是 iPad 对不同的容器格式很敏感;但情况似乎并非如此。我拍摄了一段在 iPad 上正确渲染的视频并将其转换为 .mov,并且它仍然在 iPad 上正确播放。所以 iPad 处理底层 H.264 流的方式肯定有问题。
【问题讨论】:
-
在桌面浏览器上查看页面时 mp4 是否有效?
-
是的。这只发生在 iPad 上。它与 mp4 与 m4v 有关。
-
我刚刚在 iPad 上渲染的视频上运行了这个命令: ffmpeg -i a_video_3_emu.mp4 -acodec copy -vcodec mpeg4 output.mp4 。 output.mp4 仍然可以在 iPad 上运行。看起来这可能不是容器问题,而是底层流。
标签: ios ipad html ffmpeg video-encoding