You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP视频嵌入实现中Range请求异常导致进度条无法跳转

PHP视频代理Seek功能失效问题说明

故障实际表现

  • 通过PHP代理加载的视频可完成基础播放,但拖动进度条跳转至指定时间点时,视频会自动回退到开头重新播放
  • 抓包核查服务端实际响应头,发现返回的Content-Type: text/html,完全未按照视频流分块逻辑输出正确响应

现有代码组成

整套代理逻辑由两个PHP文件实现:

  • index.php:前端展示页面,通过<video>标签绑定videos.php代理接口,请求时传入对应视频的hash标识,完成视频资源的引用加载
  • videos.php:本该承担HTTP Range分块响应逻辑,以此支持视频Seek拖动能力的核心代理接口

核心逻辑缺陷

videos.php存在明确的代码执行顺序错误:

  • 代码在解析分块请求、设置正确的视频响应头之前,提前调用readfile函数直接输出全量视频内容
  • 该执行顺序直接导致后续所有分块规则解析、合法响应头设置的逻辑完全失效
  • 浏览器收到不支持Range请求的全量响应后,无法基于分块响应规则实现进度跳转

临时调整方案的局限

开发者曾尝试移动readfile的代码位置,将其调整到分块处理逻辑之后执行:

  • 调整后刷新页面可临时实现进度拖动跳转
  • 但这种调整无法做到首次加载就默认支持Seek能力,同时也无法兼容对在线第三方视频链接的代理场景

内容的提问来源于stack exchange,提问作者Eslam Alawy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 18:57:02