阿里視頻點(diǎn)播

阿里視頻點(diǎn)播

前言

筆者在開發(fā)過程中需要使用視頻流的方式開發(fā)視頻田藐,如何選擇正確的流媒體服務(wù)器呢?市面上有很多的流媒體服務(wù)器,這里給大家介紹下阿里的視頻服務(wù):視頻點(diǎn)播恨溜,媒體轉(zhuǎn)碼,視頻直播

什么是視頻點(diǎn)播

阿里云視頻點(diǎn)播(VoD)是集音視頻采集找前、編輯糟袁、上傳、自動(dòng)化轉(zhuǎn)碼處理躺盛、媒體資源管理项戴、分發(fā)加速、視頻播放于一體的一站式音視頻點(diǎn)播解決方案槽惫。
視頻點(diǎn)播服務(wù)構(gòu)建在阿里云強(qiáng)大的基礎(chǔ)設(shè)施服務(wù)之上周叮,借助靈活和可伸縮的存儲(chǔ)、高質(zhì)量的視頻轉(zhuǎn)碼處理技術(shù)界斜,以及穩(wěn)定快速的內(nèi)容分發(fā)服務(wù)仿耽,幫助企業(yè)和開發(fā)者快速搭建安全、彈性各薇、高可定制的點(diǎn)播平臺(tái)和應(yīng)用项贺。
視頻點(diǎn)播服務(wù)提供Web管理控制臺(tái)和軟件開發(fā)工具包(API+SDK)。您可以通過它們使用、管理視頻點(diǎn)播服務(wù)敬扛,也可以與您自己的應(yīng)用和服務(wù)集成晰洒。
所有服務(wù)按使用付費(fèi),服務(wù)能力自動(dòng)伸縮啥箭,告別復(fù)雜的架構(gòu)設(shè)計(jì)和編程開發(fā)谍珊,維護(hù)成本幾近于零,使您可以專注于業(yè)務(wù)邏輯實(shí)現(xiàn)及最終用戶體驗(yàn)的提升急侥。(說實(shí)在砌滞,阿里云的視頻點(diǎn)播的文檔寫的不咋滴)

阿里視頻點(diǎn)播服務(wù)價(jià)格:

首先要購(gòu)買視頻點(diǎn)播服務(wù),阿里云的價(jià)格有四種:2216(元)/年坏怪、6488(元)/年贝润、19900(元)/年、49900(元)/年

套餐2
套餐2


如何購(gòu)買根據(jù)自己的需求铝宵,
當(dāng)購(gòu)買完成之后阿里會(huì)給你分配兩個(gè)key(上傳視頻和播放視頻都需要用到這兩個(gè)數(shù)據(jù)):Access Key ID Access Key Secret

如何使用

阿里視頻文文檔

上傳視頻有四種:1打掘、JavaScript上傳視頻、IOS上傳視頻鹏秋、Android上傳視頻尊蚁、Java上傳視頻
這里介紹下JavaScript上傳視頻侣夷。

我們先看下阿里的 demo


其實(shí)我們只要注意第一個(gè)點(diǎn)播上傳配置就ok了横朋,使用點(diǎn)播配置上傳需要獲取上傳憑證和上傳地址(這里使用到JAVA版本),另外還有PHP版本和Python版本

阿里視頻點(diǎn)播上傳SDK-JAVA版

生成憑證和地址代碼(簡(jiǎn)化了一些可選代碼):

public static CreateUploadVideoResponse createUploadVideo(CoursewareInfoVo vo) {
            DefaultAcsClient aliyunClient = new DefaultAcsClient(DefaultProfile.getProfile("cn-shanghai",accessKeyId,accessKeySecret));
    CreateUploadVideoRequest request = new CreateUploadVideoRequest();
    CreateUploadVideoResponse response = null;
    try {
      /*必選百拓,視頻源文件名稱(必須帶后綴, 支持 "3GP","AVI","FLV","MP4","M3U8","MPG","ASF","WMV","MKV","MOV","TS","WebM","MPEG","RM","RMVB","DAT","ASX","WVX","MPE","MPA","F4V","MTS","VOB","GIF")*/
      request.setFileName(vo.getFileName());上傳的視頻文件名稱
      //必選琴锭,視頻源文件字節(jié)數(shù)
      request.setFileSize(Long.valueOf(vo.getSize()));上傳視頻的大小
      //必選,視頻標(biāo)題
      request.setTitle(vo.getFileName()); 上傳視頻的標(biāo)題
      response = aliyunClient.getAcsResponse(request);
    } catch (ServerException e) {
      System.out.println("CreateUploadVideoRequest Server Exception:");
      e.printStackTrace();
    } catch (ClientException e) {
      System.out.println("CreateUploadVideoRequest Client Exception:");
      e.printStackTrace();
    }
    System.out.println("UploadAuth:"+response.getUploadAuth());
    System.out.println("UploadAddress:"+response.getUploadAddress());
    System.out.println("videoId:"+response.getVideoId()); videoId很重要衙传,后續(xù)播放的時(shí)候需要用到决帖,要記得保存
    return response;
}

前端的js代碼:

這里引入
<script src="aliyun-sdk.min.js"></script>
<script src="vod-sdk-upload-1.0.6.min.js"></script>

 初始化上傳的js
 window.onload = new function() {
    uploader = new VODUpload({
        // 文件上傳失敗
        'onUploadFailed': function (uploadInfo, code, message) {},
        // 文件上傳完成
        'onUploadSucceed': function (uploadInfo) {},
        // 文件上傳進(jìn)度
        'onUploadProgress': function (uploadInfo, totalSize, uploadedSize) {
            aliyunProgress(Math.ceil(uploadedSize * 100 / totalSize));
        },
        // STS臨時(shí)賬號(hào)會(huì)過期,過期時(shí)觸發(fā)函數(shù)
        'onUploadTokenExpired': function () {
                // 實(shí)現(xiàn)時(shí)粪牲,從新獲取UploadAuth
                // uploader.resumeUploadWithAuth(uploadAuth);
        },
        // 開始上傳
        'onUploadstarted': function (uploadInfo) {
            uploadAuth,uploadAddress 這兩個(gè)參數(shù)是通過上面的代碼傳到前臺(tái)
            uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress);
            
        }
    });
    if (isVodMode()) {
        // 點(diǎn)播上傳古瓤。每次上傳都是獨(dú)立的鑒權(quán),所以初始化時(shí)腺阳,不需要設(shè)置鑒權(quán)
        uploader.init();
    }
    };
    function start() {
        uploader.startUpload();
        aliyunProgress(0);
    }

    function stop() {
        uploader.stopUpload();
    }

    function resumeWithToken() {
        var uploadAuth = document.getElementById("uploadAuth").value;
        if (isVodMode()) {
            uploader.resumeUploadWithAuth(uploadAuth);
        }
    }
    function clearList() {
        uploader.cleanList();
    }
    
    function deleteFile() {
        if (document.getElementById("deleteIndex").value) {
        var index = document.getElementById("deleteIndex").value
        log("delete file index:" + index);
        uploader.deleteFile(index);
    }
}

添加視頻到 uploader的中
<form action="">
<input type="file" name="file" id="files" multiple/>
</form>
document.getElementById("files").addEventListener('change', function (event) {
       for(var i=0; i<event.target.files.length; i++) {
        上傳時(shí)落君,可以選擇是否啟用水印和優(yōu)先級(jí),userData是一個(gè)json對(duì)象亭引。第一級(jí)的Vod是必須的绎速,Vod下面有2個(gè)屬性,示例如下:
        var userData = '{"Vod":{"UserData":"{"IsShowWaterMark":"false","Priority":"7"}"}}';
        uploader.addFile(event.target.files[i], null, null, null, userData);
       }
});
然后調(diào)用  uploader.startUpload() 方法就可以實(shí)現(xiàn)上傳

操作截圖

選擇上傳的視頻文件


讀取視頻信息獲取到阿里的uploadAuth和uplaodAddress后點(diǎn)擊開始上傳 uploader.startUpload()




上傳的進(jìn)度可以在onUploadProgress方法中實(shí)現(xiàn)焙蚓,這樣阿里云的視頻就上傳完成了纹冤,接下來就是如何調(diào)用視頻

瀏覽上傳視頻

1洒宝、獲取播放憑證阿里視頻點(diǎn)播獲取播放憑證JAVA版,另外還有PHP版本和Python版本

代碼如下:

 public static GetVideoPlayAuthResponse getVideoPlayAuth(String videoId) {
     DefaultAcsClient aliyunClient = new DefaultAcsClient(DefaultProfile.getProfile("cn-shanghai",accessKeyId,accessKeySecret));
        GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest();
        request.setVideoId(videoId);
        GetVideoPlayAuthResponse response = null;
        try {
            response = aliyunClient.getAcsResponse(request);
        } catch (ServerException e) {
            throw new RuntimeException("GetVideoPlayAuthRequest Server failed");
        } catch (ClientException e) {
            throw new RuntimeException("GetVideoPlayAuthRequest Client failed");
        }
        response.getPlayAuth();              //播放憑證
        response.getVideoMeta();             //視頻Meta信息
        return response;
 }

2萌京、web端播放 Web播放器SDK
(此外還有android版本播放和ios版本播放)

代碼如下(簡(jiǎn)化版):

http://g.alicdn.com/de/prismplayer/1.7.6/prism-h5-min.js
http://g.alicdn.com/de/prismplayer/1.7.6/skins/default/index-min.css
var player= new prismplayer({
        id: 'J_prismPlayer',
        width:'100%',
        height:$("#player").height()+"px",
        autoplay: true,
        vid : videoId,
        playauth :playAuth  后臺(tái)獲取到的
  });

預(yù)覽效果如圖

總結(jié)

阿里視頻點(diǎn)播服務(wù)雁歌,還有其功能,這里通過阿里的文檔簡(jiǎn)單的介紹下創(chuàng)建自己的流媒體服務(wù)器級(jí)使用方法知残,筆者是做java開發(fā)的靠瞎,在開發(fā)中其實(shí)會(huì)用到很多的功能插件,后面會(huì)記錄下來求妹,同大家分享乏盐,也歡迎大家留言
微信公眾號(hào)及ahpome的博客求關(guān)注

image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市制恍,隨后出現(xiàn)的幾起案子父能,更是在濱河造成了極大的恐慌,老刑警劉巖净神,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件何吝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鹃唯,警方通過查閱死者的電腦和手機(jī)岔霸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俯渤,“玉大人,你說我怎么就攤上這事型宝“私常” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵趴酣,是天一觀的道長(zhǎng)梨树。 經(jīng)常有香客問我,道長(zhǎng)岖寞,這世上最難降的妖魔是什么抡四? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮仗谆,結(jié)果婚禮上指巡,老公的妹妹穿的比我還像新娘。我一直安慰自己隶垮,他們只是感情好藻雪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狸吞,像睡著了一般勉耀。 火紅的嫁衣襯著肌膚如雪指煎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天便斥,我揣著相機(jī)與錄音至壤,去河邊找鬼。 笑死枢纠,一個(gè)胖子當(dāng)著我的面吹牛像街,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播京郑,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宅广,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了些举?” 一聲冷哼從身側(cè)響起跟狱,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎户魏,沒想到半個(gè)月后驶臊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叼丑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年关翎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸠信。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纵寝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出星立,到底是詐尸還是另有隱情爽茴,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布绰垂,位于F島的核電站室奏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏劲装。R本人自食惡果不足惜胧沫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望占业。 院中可真熱鬧绒怨,春花似錦、人聲如沸谦疾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽餐蔬。三九已至碎紊,卻和暖如春佑附,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仗考。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工音同, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秃嗜。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓权均,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親锅锨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子叽赊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,077評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件必搞、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,094評(píng)論 4 62
  • 提起才華和天賦恕洲,你會(huì)想到什么:人生巔峰塔橡?成功?脫穎而出霜第?但有的人才華橫溢葛家,真的就碌碌一生,為什么泌类? 一癞谒、無擔(dān)當(dāng) ...
    格勤閱讀 628評(píng)論 0 2
  • 堅(jiān)定不移的過程叫定力——摘自今天父親大人給我發(fā)的一句話。話說最近發(fā)現(xiàn)老先生發(fā)的語錄文摘等檔次和格局比以前提高了些刃榨,...
    心玥Lotus閱讀 564評(píng)論 0 0
  • 1.隱藏導(dǎo)航欄后扯俱,滾動(dòng)視圖的坐標(biāo)從狀態(tài)欄開始算起。 2.要想讓滾動(dòng)視圖滾動(dòng)喇澡,只需要讓它的contentSize的高...
    frankisbaby閱讀 167評(píng)論 0 0