IC.Video - imonology/ImonCloud-Doc GitHub Wiki

IC.Video API列表

IC.Video

此 API 支援以 rtsp 或 stdin 下載 video stream; IC.Video supports to download video stream from rtsp or stdin.

deleteChannel({id: }) -- 刪除一個 video channel

getChannel({id: , onDone: }) -- 取得 video channel

getStatus() -- 取得 IC.Video 狀態

setChannel({}) -- 新增/設定一個 video channel

setDiskFullAction() -- 設定磁碟屆滿動作

setNotify() -- 設定發生事件時的通知 callback function

stdinWrite() -- 對一個 video channel 寫入 stdin

stopAllStream() -- 停止所有的串流

stream.start() -- 啟動一個串流

stream.stop() -- 停止一個串流

record.start() -- 啟動一個錄影

record.stop() -- 停止一個錄影

---------------------------------------------------------------

IC.Video.setChannel({});

功能說明

新增/或設定一個新的 video channel

變數說明

  • 傳入(input)

    • {id: , in: , }

      變數類型: Object

      變數說明: id: channel id, in: [] 輸入來源, onDone:

  • 傳出(callback)

    • onDone: function ({id, message})

      變數類型: id: String, message: String

      變數說明: 如果設定成功,則回傳 channel id ,其成功訊息;若不成功,則回傳錯誤,及錯誤訊息。

  • 回傳(return)

    • return id;

      變數類型: String

      變數說明: channel id 。

---------------------------------------------------------------

IC.Video.getStatus()

功能說明

傳回 IC.Video 的狀態。

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • {}

      變數類型: Object

      變數說明: 執行狀態

---------------------------------------------------------------

IC.Video.getChannel({id: , onDone: });

功能說明

取得 video channel 的資料。

變數說明

  • 傳入(input)

    • {id: , onDone: }

      變數類型: Object

      變數說明: 若有填入 id, 則只回傳該特定 video channel 資料,若無,則回傳所有 video channel 資料。

  • 傳出(callback)

    • onDone: function ({})

      變數類型: Object

      變數說明: 回傳 video channel 資料。

  • 回傳(return)

    • return false;

      變數類型: Boolean

      變數說明: 若執行過程有誤,則回傳 false 。

---------------------------------------------------------------

IC.Video.deleteChannel({id: })

變數說明

  • 傳入(input)

    • {id: }

      變數類型: Object

      變數說明: id: video channel id

  • 傳出(callback)

  • 回傳(return)

    • return true | false

      變數類型: Boolean

      變數說明: true: 刪除成功; false: 刪除失敗

---------------------------------------------------------------

IC.Video.stdinWrite({id:, data: , encode: })

功能說明

將資料輸入給 IC.Video 利用 stdin 輸入給 ffmpeg.

變數說明

  • 傳入(input)

    • {id: , data: , encode: }

      變數類型: Object

      變數說明: id: video channel id; data: 資料本身; encode: 編碼方式,例如 'utf8' 或 'binary'.

  • 傳出(callback)

  • 回傳(return)

---------------------------------------------------------------

IC.Video.stopAllStream()

功能說明

停止一切串流/錄影。

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

---------------------------------------------------------------

IC.Video.setNotify()

功能說明

設定當 IC.Video 發生事件時,要觸發的 callback function.

變數說明

  • 傳入(input)

    • {onNotify: }

      變數類型: Object

      變數說明: onNotify 是一個 callback function, 當 IC.Video 發現錯誤事件時(例如磁碟快滿、串流錯誤),會觸發。

  • 磁碟快滿時會觸發 onNotify({notify: 'diskInsufficient'})
  • 影像串流失效時會觸發 onNotify({ notify: 'videoLoss', id: 'E66B5A99-3C9E-4490-840B-A429D6327C38' })
  • 傳出(callback)

  • 回傳(return)

    • return true | false ;

      變數類型: Boolean

      變數說明: 若設定成功則傳回 true; 失敗則傳回 false 。

---------------------------------------------------------------

IC.Video.setDiskFullAction()

功能說明

設定磁碟存檔滿時,IC.Video 所對應的動作。

變數說明

  • 傳入(input)

    • {action: }

      變數類型: Object

      變數說明: action: 若為 "deleteOld" 表示磁碟滿時,讓 IC.Video 刪除舊存檔; 若為 "stopAll" 表示讓 IC.Video 停止所有錄影。

  • 傳出(callback)

return

  • 回傳(return)

    • return true | false

      變數類型: Boolean

      變數說明: 設定動作成功則回傳 true, 不成功則回傳 false 。

---------------------------------------------------------------

IC.Video.stream.start({id: })

功能說明

對一個 video channel 啟動串流

變數說明

  • 傳入(input)

    • {id:}

      變數類型: Object

      變數說明: id: video channel ID

  • 傳出(callback)

  • 回傳(return)

---------------------------------------------------------------

IC.Video.stream.stop({id: })

功能說明

對一個 video channel 停止串流。

變數說明

  • 傳入(input)

    • {id:}

      變數類型: Object

      變數說明: id: video channel ID

  • 傳出(callback)

  • 回傳(return)

---------------------------------------------------------------

IC.Video.record.start({id: , before: })

功能說明

對一個 video channel 啟動錄影

變數說明

  • 傳入(input)

    • {id: , before: }

      變數類型: Object

      變數說明: id: video channel ID; before: 觸發停止錄影之前,還會另外預錄的秒數 (video channel 要已經處於串流狀態, 預錄影功能方能有效)

  • 傳出(callback)

  • 回傳(return)

---------------------------------------------------------------

IC.Video.record.stop({id: , after: })

功能說明

對一個 video channel 停止錄影

變數說明

  • 傳入(input)

    • {id: , after: }

      變數類型: Object

      變數說明: id: video channel ID; after: 觸發停止錄影之後,還會繼續錄的秒數

  • 傳出(callback)

  • 回傳(return)

IC.Video.query();

功能說明

查詢已錄影片

變數說明

  • 傳入(input)

    • {id: , post_record: }

      變數類型: Object

      變數說明: id: video channel ID; post_record: 觸發停止錄影之後,還會繼續錄的秒數

  • 傳出(callback)

  • 回傳(return)

IC.Video.oldestAvailable();

功能說明

查詢已錄 最舊存檔

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

     格式物件,範例如下:  
    
{
        "E66B5A99-3C9E-4490-840B-A429D6327C38": {
            "oldestMtime": "2015-04-13T02:14:33.000Z",
            "oldestFilename": "store/mp4/E66B5A99-3C9E-4490-840B-A429D6327C38/E66B5A99-3C9E-4490-840B-A429D6327C38_20150413-101406.mp4"
        }
}

IC.Video.stored.convert();

--------------------------------------------------------------- 實作未完成:

  • post_record
  • pre_record
⚠️ **GitHub.com Fallback** ⚠️