微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP认证 MP4文件 播放

1、问题

  • 直接放在WEB目录下,文件不安全,没有认证可以直接访问;
  • PHP认证通过后返回WEB目录下的真实文件地址,不安全,访问一次后后续可以直接访问;
  • PHP读MP4文件然后再输出:加载速度、内存占用、快进快退都会有问题;

2、解决思路:

  • 采用PHP认证后Nginx播放
  • 转hls后加密播放

3、PHP认证后Nginx播放

Nginx中配置:

    # 这里使用internal做下载防护,只允许内部程序(PHP等)访问,这样外部直接访问这个地址就会提示404错误
    location ~ \.mp4$ {
        internal;
       # 这里的路径配置是可选的,可以配置到网站外部,和其他location里的配置路径是一个意思,可以更好的防止文件被通过网址下载
        root /opt/video; 
    }

 

PHP中在认证通过后,写:

header('x-accel-redirect:/20220822/06.mp4')

 

将带认证的PHP文件作为video标签的src,就能播放服务器上:/opt/video/20220822/06. mp4 文件

 

存在的问题及解决方法

Nginx这种写法可能导致所有的mp4请求都走/opt/video,如果之前有已经存放在web目录下直接访问的mp4文件,需要兼容已有程序,这么做:

    location /28dfs238deswh9HJGAS38/  {
        internal;
        alias /opt/video; 
    }

PHP里这么写:

header('x-accel-redirect:/28dfs238deswh9HJGAS38/20220822/06.mp4')

 

 

4、转hls后的加密播放(未完待续)

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐