说明:一般观看自己下载的电影时候,通常会因为网络或者带宽原因很卡,所以就得处理下,萌咖大佬闭关半个月,写了一个视频转码切片后自动上传至国内cdn的脚本,脚本默认提供上传到语雀cdn的脚本、采用多线程上传,这里默认10线程,基本上可以很大程度上提高视频的播放速度。

使用

github地址

1、安装ffmpeg


wget https://www.moerats.com/usr/down/ffmpeg/ffmpeg-git-$(getconf LONG_BIT)bit-static.tar.xz

tar xvf ffmpeg-git-*-static.tar.xz

mv ffmpeg-git-*/ffmpeg ffmpeg-git-*/ffprobe /usr/local/bin/

rm -rf ffmpeg-git-*

  

2、安装脚本


#新建/opt/ffmpeg文件夹存放脚本等文件

mkdir /opt/ffmpeg && cd $_

#下载并运行脚本

wget https://raw.githubusercontent.com/MoeClub/Note/master/ffmpeg/Install.sh

bash Install.sh

  

3、启动播放器


  

由于切片生成m3u8文件后,需要播放器才能播放,而上传脚本也会自动推送m3u8文件到播放器根目录,所以这里可以配合一起用,当然自己会播放m3u8的也可以不用搭建,自行选择。

  

4、安装pip3:


#CenOS 7系统

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum install python36 -y

wget https://bootstrap.pypa.io/get-pip.py

python3 get-pip.py

  

#Debian/Ubuntu系统

apt update

apt install python3-pip -y

  

4、安装依赖:


#进入到播放源码文件夹

cd /opt/ffmpeg/Player

pip3 install tornado

  

5、后台启动:


nohup python3 Player.py&

  

注意Player.py文件的MasterKey值需和publish.sh的Token值对应,不要乱改。

6、脚本用法


  

#命令示例

bash /path/to/media.sh <不含特殊字符的文件名.mp4> [特殊选项]

  

#特殊选项: 数字;可选参数,默认为0

#0:自动根据文件比特率计算合适的切片大小。(目标文件大小小于20M,一般情况下没问题)

#1:强制重新编码,重新编码比特率为2400k。(一般用于非H264编码,文件切片,速度较慢)

#2:自定义切片时间,当为2时切片时间为3秒,当大于等于3时切片时间为特殊选项数字。

  

7、使用示例:


  

#进入视频所在目录

cd /root/movies

  

#默认模式切片

bash /opt/ffmpeg/media.sh rats.mp4

#强制重新编码

bash /opt/ffmpeg/media.sh rats.mp4 1

#极速模式, 设置2s一个切片(源文件为H264编码情况下)

bash /opt/ffmpeg/media.sh rats.mp4 2

  

8、播放示例:


#查看推送到播放器这边的m3u8所有文件

http://ip:5866/Player/list

  

#播放list显示的根目录下的rats.m3u8文件

http://ip:5866/Player/rats.m3u8

  

上传到CDN

需要获取ctoken和session值 来绑定CDN (根据自己实际的CDN来定)

这里说下大概获取方法,以谷歌浏览器为例。

630bbf8990ce43af8392e7102e8fe5ad.png

复制ctoken和session的值

将脚本所有的内容复制替换到upload.sh脚本里面,并填入ctoken和session的值

不建议强制转码,只切片就行了,不然长时间占用cpu的话,服务器可能会被ban

昨天是历史。明天是谜团。只有今天是天赐的礼物。