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 文件时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
我在使用 Mozilla Firefox 和背景图片时遇到问题