來源:https://www.moerats.com/archives/1024/
VPS:阿里雲ECS 2核4G1M 系統:ubuntu_18_04_x64
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都可以直接切片。
