參考:
https://github.com/sanlengjingvv/mpeg-dash-sample
Ubuntu下GPAC(MP4Box)的安裝 | 基於MP4Box搭建DASH視頻系統
-------------------------------------------------------------------------------------------------------
環境 ubuntu 18.04
一、首先按照以上鍊接安裝ffmpeg、MP4Box、node和npm
ffmpeg:一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。採用LGPL或GPL許可證。它提供了錄製、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec,爲了保證高可移植性和編解碼質量,libavcodec裏很多code都是從頭開發的。此處用其得到不同質量的視頻和分離音頻。
MP4Box:用 mp4box 得到 MPEG-Dash 需要的音視頻和 .mpd 文件。
二、使用ffmpeg、MP4Box
視頻鏈接:https://github.com/sanlengjingvv/mpeg-dash-sample/blob/master/input.mp4
# 用 ffmpeg 轉碼得到不同質量的視頻
ffmpeg -i input.mp4 -s 160x90 -c:v libx264 -b:v 250k -g 90 -an input_video_160x90_250k.mp4
ffmpeg -i input.mp4 -s 320x180 -c:v libx264 -b:v 500k -g 90 -an input_video_320x180_500k.mp4
ffmpeg -i input.mp4 -s 640x360 -c:v libx264 -b:v 750k -g 90 -an input_video_640x360_750k.mp4
ffmpeg -i input.mp4 -s 640x360 -c:v libx264 -b:v 1000k -g 90 -an input_video_640x360_1000k.mp4
ffmpeg -i input.mp4 -s 1280x720 -c:v libx264 -b:v 1500k -g 90 -an input_video_1280x720_1500k.mp4
# 用 ffmpeg 得到音頻
ffmpeg -i input.mp4 -c:a aac -b:a 128k -vn input_audio_128k.mp4
# 用 mp4box 得到 MPEG-Dash 需要的音視頻和 .mpd 文件
MP4Box -dash 5000 -rap -frag-rap -profile dashavc264:onDemand -frag 5000 input_audio_128k.mp4 input_video_160x90_250k.mp4 input_video_320x180_500k.mp4 input_video_640x360_750k.mp4 input_video_640x360_1000k.mp4 input_video_1280x720_1500k.mp4 -out main.mpd
運行之後的界面如下,包含原視頻,音頻,切片和mpd文件
三、使用npm安裝http-server
npm install http-server -g
npm install grunt-cli -g
打開http-server服務器
# --cors 代表接受任意域名的跨域資源共享,-c-1 代表不啓用緩存
http-server -a 127.0.0.1 -p 9999 --cors -c-1
打開瀏覽器,輸入http://127.0.0.1:9999/,顯示如下
四,下載dash.js,並啓動
找另一個目錄dash.js文件夾中下載構建 dash.js,一個開源的支持 MPEG-Dash 協議的播放器
git clone https://github.com/Dash-Industry-Forum/dash.js.git
cd dash.js
npm install //下載需要的模塊
grunt dev //啓動
之後出現如下界面,點擊“DASH IF Reference player”
五、打開切片的視頻。
右擊http-server頁面的mpd文件,選擇複製鏈接,然後複製到上圖播放器界面上面的鏈接處,點擊load加載視頻。如圖所示,視頻右下角可以選取視頻畫質。
下面也會顯示緩存,延遲,碼率等信息