当前位置:Gxlcms > PHP教程 > javascript-php做视频网站服务器很卡怎么办??

javascript-php做视频网站服务器很卡怎么办??

时间:2021-07-01 10:21:17 帮助过:3人阅读

环境:
php5.3.9
Apache 22
mysql5.6.x
windows

使用做视频网站的时候碰到的几个问题(本地环境测试):

A. 几十个视频。通过 canvas 截取视频第一帧做封面。

    // 视频源列表
    var vSrcList = [src1 , src2 , src3 ....];
    
    // 队列方式截取视频第一帧(如果不采取队列方式截取的话,基本上所有的都会截取失败....)
    // 即使采取队列的方式获取视频第一帧,照样有很高的几率会导致视频第一帧截取失败
    // 打开控制台network来看的话,大量的请求显示 pending... 
    var dequeue = function(){
        var curItem = vSrcList.shift();
        if (curItem) {
            // 这边添加到节点到页面上..
            
            dequeue();
        }
    };
    
    dequeue();
       
    // 获取视频第一帧画面
    function getVShowPic(src , fn , opt){
        var v = document.createElement('video');
        var cav = document.createElement('canvas');
        var ctx = cav.getContext('2d');
        v.currentTime = 1;
        v.addEventListener('canplay' , function(){
            if (opt === undefined) {
                opt = {
                    w: v.videoWidth ,
                    h: v.videoHeight
                };
            }
            
            ctx.drawImage(this , 0 , 0 , opt['w'] , opt['h']);
            var src = cav.toDataURL('image/jpeg' , 1);
            fn(src);
        } , false);
        v.src = src;
    }

B. 由于第一个问题中已经出现十分卡顿的现象。视频播放的时候就更加夸张的突出了。主视频一直显示加载中,相关视频列表封面全部截取失败

问题1:是否php就不适合做视频网站??
问题2:像优酷,爱奇艺之类的视频网站运行如此顺畅的原因是什么?
问题3:类似于优酷,他们的视频封面是手动上传的还是自动截取视频第一帧做的封面??,因为若是单纯的播放一个视频的话,倒是不会出现卡顿的现象,我只要把自动截取视频第一帧的代码给拿掉,就不会出现任何卡顿...

顺便分享下网址哈: www.lysqdx.com

回复内容:

环境:
php5.3.9
Apache 22
mysql5.6.x
windows

使用做视频网站的时候碰到的几个问题(本地环境测试):

A. 几十个视频。通过 canvas 截取视频第一帧做封面。

    // 视频源列表
    var vSrcList = [src1 , src2 , src3 ....];
    
    // 队列方式截取视频第一帧(如果不采取队列方式截取的话,基本上所有的都会截取失败....)
    // 即使采取队列的方式获取视频第一帧,照样有很高的几率会导致视频第一帧截取失败
    // 打开控制台network来看的话,大量的请求显示 pending... 
    var dequeue = function(){
        var curItem = vSrcList.shift();
        if (curItem) {
            // 这边添加到节点到页面上..
            
            dequeue();
        }
    };
    
    dequeue();
       
    // 获取视频第一帧画面
    function getVShowPic(src , fn , opt){
        var v = document.createElement('video');
        var cav = document.createElement('canvas');
        var ctx = cav.getContext('2d');
        v.currentTime = 1;
        v.addEventListener('canplay' , function(){
            if (opt === undefined) {
                opt = {
                    w: v.videoWidth ,
                    h: v.videoHeight
                };
            }
            
            ctx.drawImage(this , 0 , 0 , opt['w'] , opt['h']);
            var src = cav.toDataURL('image/jpeg' , 1);
            fn(src);
        } , false);
        v.src = src;
    }

B. 由于第一个问题中已经出现十分卡顿的现象。视频播放的时候就更加夸张的突出了。主视频一直显示加载中,相关视频列表封面全部截取失败

问题1:是否php就不适合做视频网站??
问题2:像优酷,爱奇艺之类的视频网站运行如此顺畅的原因是什么?
问题3:类似于优酷,他们的视频封面是手动上传的还是自动截取视频第一帧做的封面??,因为若是单纯的播放一个视频的话,倒是不会出现卡顿的现象,我只要把自动截取视频第一帧的代码给拿掉,就不会出现任何卡顿...

顺便分享下网址哈: www.lysqdx.com

  1. 视频网站的重点是视频的CDN缓存和带宽, 和使用什么语言没有关系

  2. 别人用的是CDN啊, 看了一下你的截图应该无非就是一个习作, 怎么和别人比

  3. 看了你的描述, 推测你所谓的封面是每次从视频中读取, 那不卡才怪, 一个成熟的视频网站系统在视频上传之后是会有离线的视频处理的, 包括不限于以下工作(顺序不定):

    • 标准化视频格式(有时候不标准的格式无法实现视频在浏览器端的缓冲)

    • 压缩成多个质量的视频格式 (比如低中高, 或者240p, 360p, 480p, 720p, 1080p等等)

    • 截取某些帧作为预览图(可以截出n张然后人工后台介入)

    • 加水印(可选)

    • 上传到CDN

视频网站对带宽要求大。不是服务器配置。直播才对服务器要求高!

你这个截图的操作
是在本地 js 运行的
不卡才怪

人气教程排行