2015-10-04 80 views
0

所以我试图播放在远程服务器上托管的视频,我遇到的问题是,它需要很长的时间,大的视频开始播放。似乎需要在视频开始播放之前下载整个视频(通过比较视频开始播放所需的时间和下载所需的时间)。有没有人有任何建议,如何设置视频即可开始展示,只要其中一小部分已经下载。设置缓冲为<video>对象

+0

你将要将元数据移动到文件的开头,这有助于浏览器更好地决定它需要正确流式传输多少。看到这个答案 - https://stackoverflow.com/questions/27351136/preparing-mp4-file-for-html-5/27362604#27362604 - forhow做 – Offbeatmammal

+0

我已经在我的研究这些建议,问题是,该网站允许用户上传自己的视频供以后查看。有没有办法在php后端或网站上运行类似的东西? – user3194367

+0

您可以在监视上载文件夹的服务器上运行脚本,并触发ffmpeg来处理任何新文件。因为有延迟,尽管用户必须等到他们的视频可用时才能看到...请看http://stackoverflow.com/questions/2504842/ffmpeg-running-in-command-line-but-not-php ?rq = 1 – Offbeatmammal

回答

1

来处理你要使用类似的ffmpeg移动元数据(MOOV原子)的视频文件的前个人上传:

./ffmpeg -y -i SourceFile.mp4 -s 1280x720 -c:v libx264 -b 3M -strict -2 -movflags faststart DestFile.mp4 

上述会给你一个1280×720的输出,以3Mbps的速度在mp4容器中使用h264,并且还将第二次将moov元素移动到文件的前面,使其能够更快地开始流式传输。它不会重新编码的音频,以便将让你开始

您可能要玩的框架尺寸和比特率来获得文件大小来匹配你喜欢/需要什么什么品质。

这样做的背景,你会想要查看类似this从PHP调用的ffmpeg,或者利用http://ffmpeg-php.sourceforge.net/称呼它,或者更容易使用的远程代码转换服务如http://ffmpegasaservice.com/