【发布时间】:2014-03-05 09:29:27
【问题描述】:
我有一个 Chromecast 和一个在线 mp4 文件的 URL。我还有一个 2Mbps 的下载连接,这太可怜了,而且直接缓冲到 Chromecast 太慢了。这就是我到目前为止所尝试的:
通过开发者控制台,我简单地将 location.href 设置为 mp4 的在线 URL。 Chromecast 将缓冲 20 秒,播放 10 秒的视频,然后再次缓冲。所以,通过控制台,我暂停了视频,让它缓冲 5 分钟。当我让它再次播放时,它播放了大约 15 秒,然后失去了所有进度,不得不返回主屏幕。
由于我不想等待 mp4 的整个下载完成,我目前正在尝试这样做:我将 mp4 缓冲到我的 htdocs 目录中的本地文件,然后将 Chromecast 定向到该文件文件的位置。但是,当通过 Chrome(浏览器)打开 mp4 文件时,它不会播放,而是显示下载提示,并且 Chromecast 会返回主屏幕。
我已经在 PHP 中实现了缓冲,它看起来是这样的:
$bufferSource = 'http://example.com/path/to/file.mp4';
$bufferedReader = fopen($bufferSource, 'r');
while(!($finished = feof($bufferedReader))){
if($finished !== false){ break; }
//get onle line
$buffer = fgets($bufferedReader);
file_put_contents('buffer.mp4', $buffer, FILE_APPEND);
}
fclose($bufferedReader);
我知道 PHP 可以完成它的工作,因为我可以看到文件大小在我的计算机上增长,并且我可以使用 VLC 打开文件。我是否可以制作另一个 PHP 脚本来访问模拟“可缓冲性”的本地缓冲 mp4 文件,因此 Chrome 不显示下载对话框而是缓冲文件,Chromecast 也应该这样做?
编辑:还有一件事。我没有将 Chromecast 指向 PHP 脚本。我实际上是直接将它指向 buffer.mp4 文件。
【问题讨论】:
标签: php video buffer google-cast