全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 5991|回复: 23

PeerTube:去中心化的视频分享平台 发车专用

  [复制链接]
发表于 2018-6-15 20:50:59 | 显示全部楼层 |阅读模式
本帖最后由 ru1404 于 2018-6-15 20:57 编辑

先上个大佬发车 演示 https://facegirl.me/

播放器H5  视频是转码切片

咱们长话短说,PeerTube是一个视频上传、分享程序,但与以往的那种传统视频程序不同的地方就在于PeerTube做到了去中心化。什么是去中心化?对于PeerTube我们可以这样理解:

1、我们在服务器上每搭建好一个PeerTube,这个PeerTube就可以称作是一个实例。

2、这个实例具备用户注册、上传视频、分享视频等功能,你可以把它理解成一个简单版的有图比。

3、每个实例可以通过Bittorent相互传输数据,即你搭建的PeerTube可以和其他人搭建的PeerTube相互连接、传输数据,达到播放视频加速的效果。

4、每个用户访问实例并播放视频的时候,每个用户都将变为一个节点,多个用户在观看同一部视频的时候,可以做到相互连接、传输数据给对方,达到播放视频加速的效果。

5、如果某一部视频只有一个人观看,那么搭建PeerTube的服务器会自动把自己变为一个节点,提供数据传输。

经过上面的叙述,我们可以用一句简单的话总结:PeerTube其实就类似于BT下载里面的P2P协议,遵循人人为我,我为人人的原则来达到播放视频加速的效果。

OK,现在我们来尝试搭建一个PeerTube~

由于本人学艺不精,在CentOS7上手动安装这个玩意一直不成功,各种深坑,填都填不完,索性我直接用docker装了。省时省力,小白也能轻松搭建~

准备工作:

1、VPS系统使用CentOS7X64

2、内存大于2GB(硬性条件,1G估计是装不了的)

一、新建一个2G的SWAP:

  1. dd if=/dev/zero of=/var/swap bs=1024 count=2097152
  2. mkswap /var/swap
  3. chmod 0600 /var/swap
  4. swapon /var/swap
复制代码

二、安装常用组件:

  1. yum -y install wget git
复制代码

三、下载安装docker启动并设置开机启动:

  1. wget -4 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm
  2. yum -y install docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm
  3. systemctl start docker
  4. systemctl enable docker.service
复制代码

四、安装docker-compose

  1. curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
  2. chmod +x /usr/local/bin/docker-compose
复制代码

验证安装是否成功,如果正常会回显出版本号:

  1. docker-compose --version
复制代码

五、拉取PeerTube项目文件:

  1. git clone https://github.com/chocobozzz/PeerTube /tmp/peertube
复制代码

六、进入到PeerTube的docker配置目录,编辑docker-compose.yml

  1. cd /tmp/peertube/support/docker/production
  2. vi docker-compose.yml
复制代码

加入端口映射,让公网能够访问到这个docker:

  1.     ports:
  2.      - "12315:9000"
复制代码

上面这段代码加到如下图红框部分:



注:这里我选择用12315端口,你们可以自定义。

七、开始构建:

  1. docker-compose up
复制代码

这里不出意外的话,到最后会报错,会看到类似于这样的错误信息:

  1. peertube_1 | /app/node_modules/mkdirp/index.js:90
  2. peertube_1 | throw err0;
  3. peertube_1 | ^
  4. peertube_1 |
  5. peertube_1 | Error: EACCES: permission denied, mkdir '/data/logs'
复制代码

直接键盘组合键Ctrl+C退出来,然后执行:

  1. chown -R 991:991 data/
复制代码

再重新执行:

  1. docker-compose up
复制代码

运行正常了:



图中还有一个SMTP的报错,这里是因为我没有配置SMTP发信的原因,这个不影响程序的使用。

现在通过浏览器就应该可以访问到PeerTube了。

默认的管理员账号:root

密码在日志文件内可以翻到,日志文件的路径如下,我们可以直接cat查看:

  1. cat /tmp/peertube/support/docker/production/data/logs/peertube.log
复制代码

或者下载到本地查看:



八、放到后台运行

确认网站都是正常运行后,我们还是老样子键盘组合键Ctrl+C退出来,这次我们就可以把docker-compose放到后台运行了:

  1. docker-compose up -d
复制代码

如果要停止运行可以使用如下命令:

  1. docker-compose stop
复制代码

九、安装Nginx:

新建一个repo:

  1. vi /etc/yum.repos.d/nginx.repo
复制代码

写入:

  1. [nginx]
  2. name=nginx repo
  3. baseurl=http://nginx.org/packages/centos/7/$basearch/
  4. gpgcheck=0
  5. enabled=1
复制代码

使用yum安装:

  1. yum -y install nginx
复制代码

启动nginx以及一些其他的常用命令:

  1. systemctl start nginx
  2. systemctl enable nginx
  3. systemctl status nginx
  4. systemctl restart nginx
复制代码

十、申请SSL证书

这里我使用acme来生成let’s Encrypt的证书:

  1. cd ~
  2. curl https://get.acme.sh | sh
  3. cd .acme.sh
  4. ./acme.sh --issue -d sp.0o0.lol --webroot /usr/share/nginx/html
复制代码

注:最后一条命令内的sp.0o0.lol换成你自己的域名

成功后会在这个目录内保存你的证书文件:

完整证书:/root/.acme.sh/sp.0o0.lol/fullchain.cer
私钥:/root/.acme.sh/sp.0o0.lol/sp.0o0.lol.key

接着我们在nginx目录内新建一个cert目录,用来存放我们的证书文件

  1. mkdir /etc/nginx/cert/
复制代码

移动证书文件到cert目录:

  1. cp /root/.acme.sh/sp.0o0.lol/fullchain.cer /etc/nginx/cert/sp.0o0.lol.cer
  2. cp /root/.acme.sh/sp.0o0.lol/sp.0o0.lol.key /etc/nginx/cert/sp.0o0.lol.key
复制代码

十一、新建nginx站点配置文件:

  1. vi /etc/nginx/conf.d/peertube.conf
复制代码

写入:

  1. server {
  2.     listen       80;
  3.     listen       443 ssl http2;
  4.     server_name  sp.0o0.lol;
  5.     client_max_body_size 5000m;

  6.     ssl_certificate    /etc/nginx/cert/sp.0o0.lol.cer;
  7.     ssl_certificate_key    /etc/nginx/cert/sp.0o0.lol.key;
  8.     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  9.     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  10.     ssl_prefer_server_ciphers on;
  11.     ssl_session_cache shared:SSL:10m;
  12.     ssl_session_timeout 10m;
  13.     error_page 497  https://$host$request_uri;

  14. location / {
  15.     proxy_pass       http://127.0.0.1:12315;
  16.     proxy_redirect             off;
  17.     proxy_http_version         1.1;
  18.     proxy_set_header Upgrade   $http_upgrade;
  19.     proxy_set_header Connection "upgrade";
  20.     proxy_set_header Host      $host;
  21.     proxy_set_header X-Real-IP $remote_addr;
  22.     }
  23. }
复制代码

注:proxy_pass后面的端口号一定要和我们之前映射的docker端口号对应。

最后重启nginx:

  1. systemctl restart nginx
复制代码

一共11步操作,如果不出意外的话,你的PeerTube现在已经完美运行中了~

扩展:

目前有一个第三方的主题模版可供使用,项目地址:https://github.com/PhieF/Theme-Peertube-Vaurk

安装很简单,登录你的管理员账号,在后台添加上CSS和JS,然后保存即可。如图所示:



需要你确认修改:



OK,看看我的演示站:



嘛,我这人很实在,这种视频程序,我觉得除了适合开H站以外,别的用处我还真想不到,所以我觉得对这个东西有兴趣的人,并且想用它做生产环境的,估计都是想开大姐姐站的吧。。。

写在最后:

PeerTube有几个坑,还是要提一下的:

1、后台有关闭用户注册的功能,但这个按钮不能生效,想关闭注册的话只能修改docker-compose.yml配置文件,这BUG不知道官方会不会修。

2、PeerTube有ffmpeg转码的功能,但是它只适用于转换视频的分辨率,用来根据当前用户带宽情况来自动选择播放适合的分辨率视频。也就是说PeerTube并不能转换视频格式,所以支持上传的视频格式非常有限,貌似只有3种。

3、经过我的多次测试,实测一人播放视频的时候不如直接直链观看速度快,这就是个天坑了啊







转之  https://lala.im/3171.html

教程2 https://www.moerats.com/archives/586/comment-page-1
发表于 2018-6-15 20:56:40 | 显示全部楼层
我承认,我很懒,没看完,但是发现不是福利
发表于 2018-6-15 21:04:08 | 显示全部楼层
早关注这个东东,但没用过。
发表于 2018-6-15 22:19:36 | 显示全部楼层
看了很久,发现项目应该去做ICO
发表于 2018-6-15 22:23:42 | 显示全部楼层
好东西,收藏,辛苦楼主了!
发表于 2018-6-15 22:26:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2018-6-15 22:34:35 来自手机 | 显示全部楼层
套路不错,但是我拿一个512的小鸡鸡来装,是不是相当于占用别人的带宽了?
发表于 2018-6-15 23:06:12 | 显示全部楼层
之前看过这个网站
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-2-23 14:30 , Processed in 0.063461 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表