視頻后台轉碼系統,在線視頻轉碼系統 在線轉碼 在線播放視頻


筆記一下 去年做的一個視頻在線轉碼系統筆記

能解決

  • 上傳視頻 后台自動轉碼系統;

  • 上傳視頻完成立刻獲取播放代碼;

上傳視頻后台轉碼系統

網絡上能直接播放的視頻通常不是我們拍攝器材 直接拍攝的格式 例如 ( fmpeg,avi,rm,wov mkv 等)。 這些格式的文件是不能直接在網絡上進行在線播放的;鑒於之前有客戶需要一個能在線 直接上傳上面任意視頻格式 讓后播放這個視頻 這個需求,幾經研究 我開發了一個能在線直接上傳並轉碼為在線直接播放視頻的系統。系統提供API接口,后台發布內容的時候上傳任意視頻 調用接口 放回播放地址,系統后台完成轉碼;

傳統的視頻轉碼方式

一 調用主流視頻網站地址

例如我要建立一個網站 ,網站中希望能播放視頻, 通常的做法是吧這些視頻上傳到 主流的視頻網站 例如 youku 騰訊等視頻網站 讓后再通過他們的視頻播放地址 再嵌入到我們的網頁中 這樣的方式也可以達到目的; 只是他們可能會在你的視頻播放的時候加上廣告 打上他們的logo;

二 本地通過轉碼軟件

本地通過轉碼軟件吧 視頻轉換為flv 或者mp4 這些能網絡播放的格式 然后再上傳 通過播放器播放這個地址; 這能解決問題,但是會比較麻煩 要線下手動處理;

在線視頻轉碼系統

例如 我的一個客戶 在他的新聞發布系統中(CMS) 以前要發布新聞 新聞中有視頻 他們通常是吧視頻傳到外面的視頻網站youku 上,然后用優酷的播放地址;后來通過我們的在線轉碼系統 他們把視頻通過一上傳組件把視頻傳給我我們系統的接口 我們系統直接給返回播放代碼,無需修改任意功能和代碼 直接把放回的播放代碼插入新聞中即可播放;

  • 獨立部署 不影響已有的系統;

  • 提供接口 方便集成已有的老系統;

  • 支持分布式部署

接口文檔說明

(1) 上傳視頻接口

POST /admin/Upload/upload

上傳視頻文件,注意視頻文件字段為file, 類型為file類型;

參數

參數 類型 是否必填 說明
file file 上傳文件字段"file" 字段類型也是file
width number 自定義播放器寬度 ;默認為 800
height number 自定義播放器高度 ;默認為 500
# 參考案例
curl -X POST \
  http://video-transcode.xxxx.net:81/admin/Upload/upload \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F file=@fj1.mp4

返回值

# 注意上傳放回的為原始視頻,不要用這個地址類播放 這個視頻很大;
# 上傳成功后 攜帶 ID 回調請求 獲取播放地址接口例如: /admin/play/15
{
    "status": 1,
    "info": "上傳成功",
    "data": {
        "ext": "mpeg",
        "savename": "1.mpeg",
        "filename": "18b93553d62352efa0216b463a92ed63.mpeg",
        "size": "17M"
    },
    "upinfo": {
        "name": "1.mpeg",
        "type": "video/mpeg",
        "tmp_name": "/tmp/phpddldpC",
        "error": 0,
        "size": 18251036
    },
    "id": "20",
    "task_status": 1,
    "html": { # 播放器代碼
        "iframe": "<iframe height=300 width=500 src=http://video-transcode2.xxx.net:81/api/Video/play?id=20></iframe>",
        "page": "http://video-transcode2.03in.net:81/api/Video/play?id=20"
    }
}

(2) 獲取播放視頻代碼

GET /api/getplay/12

參數

參數 類型 說明
id string 視頻ID, API后面直接加上即可

關於播放視頻地址說明; 上傳的視頻不能立刻播放;因為還是在轉碼過程中;需要等待視頻轉碼完成才能播放,轉碼的時間長度和視頻大小相關。

實例

curl -X GET \
  http://video-transcode.xxxxx.net:81/api/getplay/12 \
  -H 'cache-control: no-cache' \
  

返回

# 返回實例
{
    "info": "播放地址",
    "html": "<iframe height=400 width=510 src=http://video-transcode2.xxxx.net:81/api/Video/play?id=12></iframe>",
    "url": "http://video-transcode2.xxxx.net:81/api/Video/play?id=12>"
}

網站后台視頻轉碼系統


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM