欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-19 20:03:42
...

环境:
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;
    }

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

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

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

问题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;
    }

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

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

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

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

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

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

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

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

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

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

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

    • 加水印(可选)

    • 上传到CDN

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

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

相关标签: javascript php