移至主內容
DarkRanger's Secret Area

主導覽

  • 首頁
  • 關於本站
  • Linux
  • 程式開發
  • N900
  • 譯文
  • 資訊技術辭典

文章分類

  • 影劇
  • 遊戲
  • 筆記
  • 雜文
  • 資訊技術
  • 站務訊息

最新內容

  • How-To:Linux 安裝 DevilutionX
  • 於 2012 年建立的一份音樂播放清單
  • How-To:Linux 安裝 Medal of Honor: Allied Assault
  • Fallout 4 (2015)
  • How-To:Linux 安裝 Blood
  • 《終極動員令》系列早期作品原始碼釋出
  • How-To:Linux 安裝 Doom 3
  • Nausicaä of the Valley of the Wind (1984)
  • Intel 內顯與 Linux 桌面死當問題排解
  • 《哥吉拉 -1.0》心得補遺

FFmpeg 實作簡易監視器與錄影

發表日期:星期六, 10/02/2021 - 12:05,更新日期:星期五, 05/24/2024 - 12:49

話說公司裡有一個房間是充當資訊機房的作用,雖然放置了一堆設備跟線路,但外觀上就是很單純的一個房間,也沒有監視器。儘管監視器實際上並不是很重要,但由於 DR 的座位,跟機房之間有點距離。所以若能規劃出一個簡易方案,從遠端就能夠檢視機房現場,覺得也不是件壞事。

 

於是便從機房中選了一部作業系統為 RHEL 8.x 的伺服器主機,裝上一支 Microsoft LifeCam HD-3000 網路攝影機。讓該主機除了原本的任務外,再額外擔負起監視機房的工作。至於軟體層的規劃非常單純,DR 的構想是在主機上使用 FFmpeg 擷取視訊鏡頭(/dev/video0),並轉碼成 H.264 串流;然後透過管線輸送給本機的 VLC 播放軟體,再由 VLC 建立一個簡單的 HTTP 服務在 8080 埠上,所編寫的指令寫於此文字檔中。

 

由於沒有打算收錄音訊的部份,所以麥克風裝置是完全省略,不做擷取與轉碼。以及為了讓輸出的影像能夠反映出日期及時間,所以加上了繪製文字的設定,將時間繪製在畫面左下角。除此之外,由於前述指令的 VLC 輸出功能是監聽 TCP 8080 埠,所以防火牆規則要記得做相應的放行。

 

順利執行指令後,在電腦上使用 VLC 或其它媒體播放器,開啟 http://<主機 IP 位址>:8080,便應能夠播放串流。而在產生串流後,除了可使用播放器做監看外,也可以另外執行指令來進行錄影。舉例來說,於主機上執行以下指令,便能夠從 http://localhost:8080 儲存 5 分鐘長度的 MKV 影片:

  • ffmpeg -i http://localhost:8080 -y -vcodec copy -an -t 00:05:00 output.mkv

 

若以此類推,再利用系統排程及編寫腳本,就能夠實作出定期及分段錄影的機制了。封裝格式選擇 MKV 或 MP4 都可以,然而倘若需要考量儲存過程出現非預期中止的可能性,則前者是比較可靠的選擇。

 

筆記