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

Posted

技术标签:

【中文标题】Mozilla Firefox 36 在播放我的 h264 MP4 文件时出现问题【英文标题】:Mozilla Firefox 36 has problems playing my h264 MP4 files 【发布时间】:2015-05-13 13:22:12 【问题描述】:

我尝试将带有 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 trail.mp4 ffmpeg 1.0.10 libavutil 51. 73.101 / 51. 73.101 libavcodec 54. 59.100 / 54. 59.100 libavformat 54. 29.104 / 54. 29.104 libav 设备 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

一般的 全名:预告片.mp4 格式:MPEG-4 格式配置文件:基础媒体 编解码器 ID:isom 文件大小:115 MiB 持续时间:1000 万 34 秒 总比特率:1 516 Kbps 片名:大雄兔、向日葵版 表演者:Blender Foundation 2008,Janus Bager Kristensen 2013 作曲:萨沙·戈德格布尔 类型 : 动画 编写应用程序:Lavf54.29.104 评论:知识共享署名 3.0 - http://bbb3d.renderfarming.net 视频 编号:1 格式:AVC 格式/信息:高级视频编解码器 格式配置文件:High@L3.1 格式设置,CABAC:是 格式设置,ReFrames:4 帧 编解码器 ID:avc1 编解码器 ID/信息:高级视频编码 持续时间:1000 万 34 秒 比特率:1 500 Kbps 宽度:1 920 像素 高度:1 080 像素 显示纵横比:16:9 帧率模式:恒定 帧速率:30.000 fps 色彩空间:YUV 色度二次采样:4:2:0 位深:8位 扫描类型:逐行扫描 比特/(像素*帧):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 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=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 / aq=1:1.00 声音的 编号:2 格式:AAC 格式/信息:高级音频编解码器 格式配置文件:LC 编解码器 ID:40 持续时间:1000 万 34 秒 Duration_LastFrame:-11ms 比特率模式:恒定 比特率:64.2 Kbps 频道:2 个频道 通道位置:前:L R 采样率:48.0 KHz 压缩模式:有损 相对于视频的延迟:-2ms 流大小:4.85 MiB (4%)

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

2015 年 3 月 12 日更新:

如果我在没有音频流的情况下转换视频,firefox 就没有问题了。

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

【问题讨论】:

我也遇到了和你一样的问题,apache和nginx都试过了,其他浏览器都没有问题,但是FF 36+找文件有问题,经常第一次找就播放不了。让整个文件预加载允许我寻找,所以它与 FF 处理字节范围编码的方式有关。我有 ffmpeg 选项-movflags faststart 将原子移动到开头,据记录,FF 工作了 2 年,现在我所有的旧编码视频都不会搜索,所以它绝对是新 FF 的东西。 只是为了帮助...我一直在网上搜索..发现....也许会帮助你。它似乎有点旧但可能相似(我无法从这里进入视频示例网址)bugzilla.mozilla.org/show_bug.cgi?id=1077519 已经有一些关于这个错误的 bugzilla 报告:bugzilla.mozilla.org/show_bug.cgi?id=1142455bugzilla.mozilla.org/show_bug.cgi?id=1145608bugzilla.mozilla.org/show_bug.cgi?id=1142084 【参考方案1】:

所以事实证明这是 Firefox 中的一个未知错误。您的视频在 Firefox Nightly 中可以正常播放。

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于Mozilla Firefox 36 在播放我的 h264 MP4 文件时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

Firefox 51 浏览器将正式支持 FLAC 解码播放

Mozilla Firefox 中缺少 CC 按钮

JS获取当前浏览器(Chrome,Firefox)

我在使用 Mozilla Firefox 和背景图片时遇到问题

Mozilla Firefox 上的 CSS flex 框大小错误问题

启动 Mozilla Firefox 时如何获取进程 ID?