Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么赢了';在下载整个文件之前,是否有一些MP4视频开始流式播放?_Php_Video_Ffmpeg_Encode - Fatal编程技术网

Php 为什么赢了';在下载整个文件之前,是否有一些MP4视频开始流式播放?

Php 为什么赢了';在下载整个文件之前,是否有一些MP4视频开始流式播放?,php,video,ffmpeg,encode,Php,Video,Ffmpeg,Encode,我正在开发一个应用程序,用户上传一个视频,然后使用jwplayer、jplayer、flowplayer等在浏览器上播放。一些视频会立即播放,而另一些则会等到整个视频文件下载完毕 我正在使用ffmpeg将视频转换为mp4格式 下面是关于我尝试的一个视频文件的一些详细信息 General Complete name : 429183132058337290450_AutoFF.mp4 Format : MPE

我正在开发一个应用程序,用户上传一个视频,然后使用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

我也有一些MP4视频的问题。我正在将上传的视频转换为mp4(h.264+aac),它们不会缓冲。原因是此格式包含文件末尾播放所需的一些重要元数据,因此必须先加载整个文件,然后才能开始播放。解决方案是在转换结果上使用一个名为
qt faststart
()的小程序。此程序将此元数据重新定位到文件的开头,使渐进式下载播放成为可能。

在使用ffmpeg创建MP4视频时,我遇到了同样的问题,最长一段时间都是这样的——最终有效的方法是将preload=“metadata”添加到html5标记中:

<video preload="metadata"><source src="..." /></video>

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

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

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