當我們從網絡攝像頭上接收視頻時,首先要了解協議(RTSP/RTMP/HTTP),然後是解碼格式(MKV,RMVB),之後纔是將視頻(H264)和音頻(AAC)格式數據分別解碼爲圖像(RGB/YUV)和聲音(PCM),再根據時間戳同步到流媒體平臺播放。我們的視頻直播點播流媒體服務器EasyDSS就是RTMP推流流媒體服務器。
今天碰到一個用戶需要二次開發互聯網直播點播平臺EasyDSS上傳點播文件接口,並集成到自己的業務當中。
然後編寫的demo界面如下
這裏需要用到登錄和上傳兩個接口,兩個接口我們都是支持調用的。
代碼運行在web語言以html、js爲主,上傳之前首先要調取登陸接口獲取用戶信息及權限。然後選擇本地視頻文件,文件選擇完成點擊上傳按鈕。下圖爲主要邏輯代碼。
<body>
<h4>EasyDSS 點播文件上傳DEMO</h4>
<b>注意:需要先登錄拿到token</b><input type="file" id="file_upload"/>
<input type="button" value="上傳點播文件" id="upload"/>
<input type="button" value="登錄" id="login"/>
</body>
$(function() {
var token = '' //token鑑權臨時變量
var httpURL = 'http://127.0.0.1:10080' //軟件IP地址
$("#upload").click(function(){//上傳
ajaxFileUpload();
});
$("#login").click(function(){//登錄
$.post(httpURL+'/login',{
username:"admin",
password:"21232f297a57a5a743894a0e4a801fc3" //密碼爲admin md5加密後的字符串
},function(data,status){
token = data.token //獲取token
console.log(token);
});
});
function ajaxFileUpload(){
var formData = new FormData();
formData.append('file',$("#file_upload")[0].files[0]) //將文件轉成二進制形式
formData.append('token',token); //將token寫入formData
$.ajax({
type:"post",
url:httpURL+"/vod/upload",
async:false,
contentType: false, //這個一定要寫
processData: false, //這個也一定要寫,不然會報錯
data:formData, //參數
dataType:'text', //返回類型,有json,text,HTML。這裏並沒有jsonp格式
success:function(data){
console.log(data) //成功的回調
},
error:function(XMLHttpRequest, textStatus, errorThrown, data){
console.log(errorThrown) //失敗的回調
}
});
}
});