banner
moeyy

moeyy

一条有远大理想的咸鱼。
github
mastodon
email

視頻切片後自動上傳至國內免費CDN,無成本加速視頻播放

** 說明:** 一般我們觀看自己下載的電影時,通常會因為網絡或者帶寬原因卡頓,所以就得處理下,這裡萌咖大佬閉關半個月,寫出了一個視頻轉碼切片後自動上傳至國內cdn的腳本,腳本默認提供上傳到語雀cdn的腳本、採用多線程上傳,這裡默認10線程,基本上可以很大程度上提高視頻的播放速度。

更新#

【2020.4.1】
由於語雀修復了上傳bug,所以移除語雀cdn,默認修改為阿里雲圖床。

使用#

Github 地址:https://github.com/MoeClub/Note/tree/master/ffmpeg

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的也可以不用搭建,自行選擇。

安裝pip3

#CenOS 6系統
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
yum install python34 -y
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

#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

安裝依賴:

#進入到播放源碼文件夾
cd /opt/ffmpeg/Player
pip3 install tornado

後台啟動:

nohup python3 Player.py&

注意Player.py文件的MasterKey值需和publish.shToken值對應,別亂改就行。

4、腳本用法

#命令示例
bash /path/to/media.sh <不含特殊字符的文件名.mp4> [特殊選項]

#特殊選項: 數字;可選參數,默認為0
#0:自動根據文件比特率計算合適的切片大小。(目標文件大小小於20M,一般情況下沒問題)
#1:強制重新編碼,重新編碼比特率為2400k。(一般用於非H264編碼,文件切片,速度較慢)
#2:自定義切片時間,當為2時切片時間為3秒,當大於等於3時切片時間為特殊選項數字。

使用示例:

#進入視頻所在目錄
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

5、播放示例

#查看推送到播放器這邊的m3u8所有文件
http://ip:5866/Player/list

#播放list顯示的根目錄下的rats.m3u8文件
http://ip:5866/Player/rats.m3u8

上傳到語雀 CDN#

提示:該方案可選,目前語雀默認免費10G,具體可參考官方說明。

先前往語雀官網註冊一個賬號→傳送門,然後獲取ctokensession的值,這裡說下大概獲取方法,以谷歌瀏覽器為例。

image

登錄後,F12進入控制台選擇Network,隨便點擊一個以yuque開頭的鏈接文件,再選擇Cookies即可看到所需要的2個參數。

然後複製ctokensession的值。

接下來查看語雀腳本→傳送門,將腳本所有的內容複製替換到upload.sh腳本裡面,並填入ctokensession的值,保存即可,上傳方法參考上面。

最後如果你是vps的話,就不建議強制轉碼,只切片就行了,不然長時間佔用cpu的話,服務器可能會被ban,基本上大多數mp4都可以直接切片。

原文地址 Rat's Blog

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。