HTML5 <video>元素 - 缓冲大小,快速启动视频

7

有没有办法我们可以为视频元素指定缓冲数据大小?浏览器需要缓冲多少数据/秒?

我问这个问题是因为我们需要尽快显示视频,即使这意味着将缓冲区大小减少到绝对最小...

我们不使用任何流媒体协议(例如HLS)。这是一个大型视频文件的简单渐进式下载...

谢谢

STeN


你所说的“尽快显示视频”具体是什么意思?确保它可以播放吗?还是自动开始播放? - Ian Devlin
如果你想让下载速度更快,就要让文件变小。 - robertc
我们在私人WiFi网络上,速度相当快 - 我想进一步降低初始缓冲区大小,但似乎不可能。对我们来说,拥有更糟的视频质量是不可接受的。 - STeN
1
浏览器具有一些初始缓冲区,在视频播放之前通过视频数据填充该缓冲区。我的问题是,我们是否可以操纵初始缓冲区大小,使视频能够在第一帧解码时尽快开始播放,而不是等待预先缓冲5秒钟的数据。 - STeN
1个回答

2
  1. you canNOT change the buffer size of browsers at the current time

  2. simply do the following after the video-element is available to the DOM (i.e. use jQuery's onLoad function to run it)

    myVideo = document.getElementById("myVideoId");
    myVideo.load();
    myVideo.play();
    

    this will start the video as soon as possible - unless you try to serve it on an iOS-device. Apple prohibits autoplay and actually fixed possible workarounds from the past.


嗨,我的做法是一旦DOM可用就调用:this.player.src = this.movieUrl;this.player.load(); this.player.play();,所以似乎我不能更快了...谢谢。 - STeN
你可以使用服务器端脚本跳过 this.player.src 命令,以进一步提高速度(直接在视频标签中设置 src,例如通过 PHP)。另外,不要等待 DOM 准备就绪。将你的 JavaScript 函数与 (this.player.load(); this.player.play();) 一起放在视频元素下面。 - Jörn Berkefeld
说起来,你可能想通过服务器端脚本添加属性“preload”。这样应该会在DOM准备就绪之前开始下载。 - Jörn Berkefeld

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接