pylivecap – 擷取 YouTube 直播影片 frame 並且存成圖片

pylivecap 是一個用來擷取直播中影片的 frame,並且存成圖片的 Python package。解決目前沒有「只擷取直播目前畫面」程式的狀況。

目前的作法是透過 streamlink 獲得畫面,傳到 ffmpeg 解出一個 frame 來,透過 Python 整理成單一的 API 來使用。主要架構非常簡單,就是下面這樣:

這邊很可恥的用了 workaround。理論上 streamlink 有提供 API,並且可以直接讀取 streaming 的資料,用法是這樣:

但是因為得到的 data 沒有辦法直接轉成 image (我還沒找出方法),因此婉轉的作法是透過 command line 操作,把 streamlink 從直播串流中擷取到的資料 pipe 到 ffmpeg 中轉換為一張圖片。核心的指令如下:

變更 -r 的數字,可以改變擷取圖片的間隔時間 (e.g. 每 5 秒一張為 1/5,每 3 秒一張為 1/3)。

pylivecap 使用範例

提醒,pylivecap 不適合作為直播影片 short interval 大量擷取,因為運行時間不固定 (取決於網路),如果要短時間大量擷取的話,還是透過 youtube-dl 或是 streamlink 下載下來再處理吧。




如果你覺得這篇文章不錯,歡迎打賞 IOTA:RFHEIVXVIZWJFXTZORZZRCMHZF9PSGFUFWAAKXTFNZE9JQUY9HFQREJYYSPSXDRLECKXCAQQDOMSMYJYDKPCKWXBKD

或是點選下方圖片贊助我一杯咖啡:

Leave a reply:

Your email address will not be published.

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料