当前位置:  开发笔记 > 编程语言 > 正文

为什么有些MP4视频在下载整个文件之前不会开始流式传输?

如何解决《为什么有些MP4视频在下载整个文件之前不会开始流式传输?》经验,为你挑选了2个好方法。

我正在开发一个应用程序,用户上传视频并使用jwplayer,jplayer,flowplayer等将其播放回浏览器.有些视频立即播放,而其他视频则等到整个视频文件下载完毕.

我正在使用ffmpeg将视频转换为mp4格式.

以下是我尝试的其中一个视频文件的一些详细信息.

General
Complete name                    : 429183132058337290450_AutoFF.mp4
Format                           : MPEG-4
Format profile                   : Base Media
Codec ID                         : isom
File size                        : 10.2 MiB
Duration                         : 24s 333ms
Overall bit rate                 : 3 501 Kbps

Video
ID                               : 1
Format                           : AVC
Format/Info                      : Advanced Video Codec
Format profile                   : High@L4.1
Format settings, CABAC           : Yes
Format settings, ReFrames        : 3 frames
Codec ID                         : avc1
Codec ID/Info                    : Advanced Video Coding
Duration                         : 24s 333ms
Bit rate mode                    : Variable
Bit rate                         : 3 351 Kbps
Width                            : 1 024 pixels
Height                           : 560 pixels
Display aspect ratio             : 16:9
Frame rate mode                  : Constant
Frame rate                       : 30.000 fps
Color space                      : YUV
Chroma subsampling               : 4:2:0
Bit depth                        : 8 bits
Scan type                        : Progressive
Bits/(Pixel*Frame)               : 0.195
Stream size                      : 9.72 MiB (96%)
Language                         : Japanese

Aleks G.. 7

我也有一些MP4视频的问题.我正在将上传的视频转换为mp4(h.264 + aac)并且它们不会缓冲.原因是此格式包含文件末尾播放所需的一些重要元数据,因此必须在播放开始之前加载整个文件.解决方案是使用一个名为qt-faststart(https://github.com/danielgtaylor/qtfaststart)的小程序来转换结果.此程序将此元数据重定位到文件的开头,从而可以进行渐进式下载播放.



1> Aleks G..:

我也有一些MP4视频的问题.我正在将上传的视频转换为mp4(h.264 + aac)并且它们不会缓冲.原因是此格式包含文件末尾播放所需的一些重要元数据,因此必须在播放开始之前加载整个文件.解决方案是使用一个名为qt-faststart(https://github.com/danielgtaylor/qtfaststart)的小程序来转换结果.此程序将此元数据重定位到文件的开头,从而可以进行渐进式下载播放.



2> llogan..:

ffmpeg-movflags +faststart选项一起使用.这会将moov原子重新定位到文件的开头,从而允许客户端开始播放,而无需先完全下载文件.

您可以在编码命令中使用它,也可以将它与现有文件一起使用,只需重新复用:

ffmpeg -i input.mp4 -c copy -movflags +faststart output.mp4

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有