** 說明:** 一般我們觀看自己下載的電影時,通常會因為網絡或者帶寬原因卡頓,所以就得處理下,這裡萌咖大佬閉關半個月,寫出了一個視頻轉碼切片後自動上傳至國內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.sh
的Token
值對應,別亂改就行。
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,具體可參考官方說明。
先前往語雀官網註冊一個賬號→傳送門,然後獲取ctoken
和session
的值,這裡說下大概獲取方法,以谷歌瀏覽器為例。
登錄後,F12
進入控制台選擇Network
,隨便點擊一個以yuque
開頭的鏈接文件,再選擇Cookies
即可看到所需要的2
個參數。
然後複製ctoken
和session
的值。
接下來查看語雀腳本→傳送門,將腳本所有的內容複製替換到upload.sh
腳本裡面,並填入ctoken
和session
的值,保存即可,上傳方法參考上面。
最後如果你是vps
的話,就不建議強制轉碼,只切片就行了,不然長時間佔用cpu
的話,服務器可能會被ban
,基本上大多數mp4
都可以直接切片。
原文地址 Rat's Blog