📌 置頂: 請把任何比你弱勢的用路人當作你的至親對待。跟前車保持安全車距 (2秒以上)。

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

In

,

Tags:



by

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 下載下來再處理吧。


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.