HTML5视频播放器一些mp4文件没有播放chrome



因此,我正在努力构建一个个人流媒体平台,并已尽我所能遵循我在各地找到的建议,以在流媒体时获得更好的兼容性/质量。

因此,我正在使用以下命令系统地将我的视频编码为视频编解码器h264,使用ffmpeg的mp4容器:

ffmpeg -i input -vcodec libx264 -maxrate 8000k -bufsize 1000K -minrate 10k -crf 24 -ab 192k -movflags faststart output.mp4

然而,我偶尔会遇到一些不情愿的mp4,它在Edge和Firefox上会玩得很好,但在Chrome上不会。加载似乎处理得很好,因为我可以在控件中看到总持续时间,但它永远不会播放,也不会在控制台中留下任何错误。

这是一个Mediainfo导出这样一个不情愿的文件:

Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 1.04 GiB
Duration                                 : 1 h 21 min
Overall bit rate                         : 1 832 kb/s
Writing application                      : Lavf57.56.101
Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 1 h 21 min
Bit rate                                 : 1 634 kb/s
Width                                    : 1 912 pixels
Height                                   : 1 032 pixels
Display aspect ratio                     : 1.85:1
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.035
Stream size                              : 953 MiB (89%)
Writing library                          : x264 core 148 r2748 97eaef2
Encoding settings                        : cabac=1 / ref=3 / 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=9 / lookahead_threads=1 / 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=24.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=8000 / vbv_bufsize=1000 / crf_max=0.0 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=1:1.00
Language                                 : French
Menus                                    : 3
Codec configuration box                  : avcC
Audio
ID                                       : 2
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 1 h 21 min
Bit rate mode                            : Constant
Bit rate                                 : 192 kb/s
Channel(s)                               : 6 channels
Channel layout                           : C L R Ls Rs LFE
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 112 MiB (11%)
Language                                 : French
Default                                  : Yes
Alternate group                          : 1
Menus                                    : 3
Menu #1
ID                                       : 3
Codec ID                                 : text
Duration                                 : 1 h 21 min
Language                                 : English
Bit rate mode                            : CBR
Menu For                                 : 1,2
00:00:00.000                             : Chapitre 01
00:08:39.000                             : Chapitre 02
00:15:10.000                             : Chapitre 03
00:24:47.000                             : Chapitre 04
00:33:39.000                             : Chapitre 05
00:43:38.000                             : Chapitre 06
00:50:51.000                             : Chapitre 07
00:59:13.000                             : Chapitre 08
01:08:01.000                             : Chapitre 09
01:14:06.000                             : Chapitre 10
Bit rate mode                            : Constant
Menu #2
00:00:00.000                             : Chapitre 01
00:08:39.000                             : Chapitre 02
00:15:10.000                             : Chapitre 03
00:24:47.000                             : Chapitre 04
00:33:39.000                             : Chapitre 05
00:43:38.000                             : Chapitre 06
00:50:51.000                             : Chapitre 07
00:59:13.000                             : Chapitre 08
01:08:01.000                             : Chapitre 09
01:14:06.000                             : Chapitre 10

提前感谢您为提供的任何有价值的提示

奇怪的是,我设法解决了这个问题,尽管我仍然不明白为什么。

我注意到我的服务器的另一个问题是我无法在视频中找到某个点。

在debian stretch arm64下运行apache2服务器时,我发现字节范围并没有被接受。

我启用了apache2 mod头并添加了:

Header set Accept-Ranges bytes 

到我的apache2.conf文件。

我修复了查找问题,但不播放mp4文件也!出于好奇,如果有人能解释这两件事是如何关联的(考虑到其他mp4文件播放得非常好(,我将不胜感激。

还不能发表评论,否则我会把它放在评论中。

在命令行中使用-v verbose,查看是否有任何与faststart设置相关的内容导致您出现问题。比如…一个错误的选项。

-movflags +faststart是ffmpeg描述命令用法的方式。https://trac.ffmpeg.org/wiki/Encode/H.264

最新更新