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後的加密播放(未完待續)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章