Mozilla Firefox 36 播放我的 h264 MP4 文件时出现问题

Mozilla Firefox 36 has problems playing my h264 MP4 files

我尝试将 ffmpeg 视频转换为 mp4 格式 (h264) 配置文件:高级:3.1(1280x720,30fps),比特率 1500k

该视频在除 Firefox 之外的所有浏览器中播放效果都很好。

http://5.79.72.89/trailer/trailer.mp4

起初它需要更长的时间来加载,而且当我在视频内部搜索时,大多数时候视频不会停止加载并且再也不会播放。 我可以在开发者控制台中看到很多部分下载。其中很多是为了初始播放,其余请求是在视频加载期间,当我寻求稍后的位置时。

当我播放其他 h264 视频(具有类似设置的 MP4)时,它们在此服务器上播放没有问题。 当我将我的视频放在另一个网络服务器 (apache) 上时,Firefox 也出现了同样的问题。

出于这个原因,我相信它与我的皈依有关。

我的设置: Debian 7(喘息) 网络服务器:nginx(带宽限制为 260k)

由于这个问题,我开始使用 avconv 转换视频并切换到 ffmpeg。但是没有成功。 同时,我尝试了所有编码选项,但 Firefox 始终存在相同的问题。其他视频播放效果很好,我的就不行,我也不知道为什么。

命令:

ffmpeg -i input.mp4 -tune zerolatency -x264opts bitrate=1500:vbv-maxrate=1500:vbv-bufsize=3000:nal-hrd=vbr -codec:v libx264 -profile:v high -level 3.1 -movflags +faststart -pix_fmt yuv420p -s 1280x720 -r 30 -ac 2 -ar 48000 -codec:a aac -ab 64k -strict experimental -y trailer.mp4
ffmpeg 1.0.10
libavutil 51. 73.101 / 51. 73.101
libavcodec 54. 59.100 / 54. 59.100
libav 格式 54. 29.104 / 54. 29.104
libavdevice 54. 2.101 / 54. 2.101
libavfilter 3. 17.100 / 3. 17.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100

文件的媒体信息:trailer.mp4

一般的
完整名称:trailer.mp4
格式 : MPEG-4
格式配置文件:基本媒体
编解码器 ID:isom
文件大小:115 MiB
持续时间:1000 万 34 秒
总比特率:1 516 Kbps
影片名称 :大雄兔向日葵版
表演者:Blender Foundation 2008,Janus Bager Kristensen 2013
作曲者:Sacha Goedegebure
类型 : 动画
编写应用程序:Lavf54.29.104
评论:知识共享署名 3.0 - http://bbb3d.renderfarming.net

视频
编号:1
格式 : AVC
Format/Info : 高级视频编解码器
格式配置文件:High@L3.1
格式设置,CABAC:是
格式设置,ReFrames:4 帧
编解码器 ID : avc1
编解码器 ID/Info : 高级视频编码
持续时间:1000 万 34 秒
比特率:1 500 Kbps
宽度:1 920 像素
高度:1 080 像素
显示纵横比:16:9
帧率模式:恒定
帧速率:30.000 fps
颜色 space : YUV
色度子采样:4:2:0
位深度:8 位
扫描类型 : Progressive
位/(像素*帧):0.024
流大小:109 MiB (95%)
写库:x264 core 132
编码设置:cabac=1/ref=4/deblock=1:0:0/analyse=0x3:0x113/me=hex/subme=7/psy=1/psy_rd=1.00:0.00/mixed_ref=1 / me_range=16 / chroma_me=1 / 网格=1 / 8x8dct=1 / cqm=0 / 死区=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / 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=50/keyint_min=5/scenecut=40/intra_refresh=0/rc_lookahead=40/rc=cbr/mbtree=1/bitrate=1500/ratetol=1.0/ qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=1500 / vbv_bufsize=3000 / nal_hrd=none / ip_ratio= 1.40 / 水=1:1.00

声音的
编号:2
格式 : AAC
Format/Info : 高级音频编解码器
格式简介:LC
编解码器 ID : 40
持续时间:1000 万 34 秒
Duration_LastFrame:-11 毫秒
比特率模式:恒定
比特率:64.2 Kbps
频道 : 2 频道
通道位置:前:L R
采样率:48.0 KHz
压缩模式:有损
相对于视频的延迟:-2ms
流大小:4.85 MiB (4%)

我不知道我的文件有什么问题。

2015-03-12更新:

如果我转换没有音频流的视频,那么 firefox 就没有问题了。

我将 ffmpeg 更新到 2.6。我使用 libfaac、aac 和 libfdk_aac 通过 cbr 和 vbr 进行音频编码但没有成功。

设置没有特别之处,可能在输出 mp4 容器上。

尝试对输出的 mp4 文件进行解复用,然后尝试使用 mp4box 或类似的 mp4 复用器对其进行复用。不要忘记 flatten/faststart 选项。看看会发生什么。

原来这是 Firefox 中的一个未知错误。您的视频在 Firefox Nightly 中播放良好。

See: https://bugzilla.mozilla.org/show_bug.cgi?id=1142455