相关说明
一般我们服务器初始容量都是1T
或者2T
,很容易装满,这时候可能首先会考虑加硬盘;不过这里建议优先考虑下带宽问题,毕竟带宽有限的情况下,加硬盘导致服务器大容量资源播放会导致播放卡,这种情况可以加带宽或者重新配置一台服务器提供切片播放;当然在带宽够用的情况下,还是可以优先加硬盘的,这里就说下操作方法。
相关操作
提示:以下方案只适用于只需用切片,不用程序的任何功能的人;如果你需要用到程序相关功能,如片头可直接联系我们。
1、拷贝一份程序源码到新挂载的硬盘文件夹
先将程序源码拷贝一份到新硬盘挂载的文件夹,且不拷贝切片目录,使用命令:
#/home/express-ffmpeg为原安装路径,/efvcms为新硬盘挂载的文件夹,可自行修改
rsync -av --exclude='public/videos/*' /home/express-ffmpeg /efvcms
拷贝完成后,将新的程序安装目录调整为/efvcms/express-ffmpeg
,具体以实际情况为准。
此处注意,如果显示-bash: rsync: command not found
,则还需要提前安装一下rsync
,使用命令:
#CentOS系统
yum install rsync -y
#Debian、Ubuntu系统
apt install rsync -y
2、启动新的安装目录的程序
#停止旧安装目录的程序
pm2 kill
#进入到新安装目录,以实际情况为准
cd /efvcms/express-ffmpeg
#启动程序
pm2 start ecosystem.config.js --env production
#开机自启
pm2 save
pm2 startup
3、将EFV绑定域名链接到旧的转码目录下的切片文件夹,使之前转码的影片不影响播放
由于旧的转码目录下的切片未转移到新的安装目录,此前的m3u8
会播放失败,这里我们自己处理下,使其不影响播放。
先获取旧的转码目录下的切片日期文件夹,使用命令:
#/home为旧的转码安装目录,自行修改
ls -1 /home/express-ffmpeg/public/videos
运行命令后,会输出202101
、202102
等字符,这种就是按时间日期命名归类的切片文件夹,且为年份+月份组合。
然后我们修改下Nginx
绑定域名的配置文件,加上以下代码:
location ~ ^/videos/(202101|202102|202103|202104) {
root /home/express-ffmpeg/public;
access_log off;
expires 12h;
}
/home/express-ffmpeg/public
为旧的转码目录路径,自行修改;202101|202102
为上面获取到的日期文件夹,中间用英文|
隔开,如图:
该配置文件达到的效果就是,202101
、202102
等日期的切片从老的切片文件夹/home/express-ffmpeg
读取,不在上面代码内的日期从新的转码文件夹读取,这时候就等于播放域名不变,切片也不影响播放。
接下来防止新切片从老文件夹读取,比如202102
这个月没过完,新切片的路径依然为202102
,根据规则,他会从老切片目录读取,所以,这时候我们需要改下切片路径,使新切片路径避免为202102
,我们默认的切片路径为{yy}{mm}/{dd}/{id}/{random}
,则现在可以将年月分开,设置成{yy}/{mm}/{dd}/{id}/{random}
,这样这个月路径会变成2021/02
,就不会从老服务器读取了。
最后注意,进行此操作后,仅仅只能保证此前的切片读取播放都正常;但是由于将新的程序目录和旧硬盘上的切片完全分离了,所以你在新的程序上对旧的切片数据做删除等任何操作均影响不到旧硬盘上的切片。