Python | OpenCV 影片屬性與資訊查詢
📚 前言
在前一章我們學會了如何查詢圖片的屬性。
這一篇要進一步學習 影片屬性與資訊查詢,理解如何取得影片的大小、總影格數、FPS、編碼器等基本資訊。
🎬 基本屬性
- CAP_PROP_FRAME_COUNT:影片總影格數
- CAP_PROP_FPS:每秒影格數
- CAP_PROP_FRAME_WIDTH:影片寬度
- CAP_PROP_FRAME_HEIGHT:影片高度
- CAP_PROP_FOURCC:編碼器代碼
- CAP_PROP_POS_FRAMES:目前影格位置
範例程式
1 | import cv2 |

圖:輸出影片的基本屬性
📑 可取得的影片屬性列表
在 OpenCV 中,使用 cap.get() 方法可以查詢影片的各種屬性。以下是常見屬性與對應編號:
| 編號 | 屬性名稱 | 說明 |
|---|---|---|
| 0 | CAP_PROP_POS_MSEC | 影片目前播放的毫秒數 |
| 1 | CAP_PROP_POS_FRAMES | 目前影格索引值 (從 0 開始) |
| 2 | CAP_PROP_POS_AVI_RATIO | 播放相對位置 (0=開始, 1=結束) |
| 3 | CAP_PROP_FRAME_WIDTH | 影片寬度 |
| 4 | CAP_PROP_FRAME_HEIGHT | 影片高度 |
| 5 | CAP_PROP_FPS | 每秒影格數 |
| 6 | CAP_PROP_FOURCC | 編解碼器 FourCC 代碼 |
| 7 | CAP_PROP_FRAME_COUNT | 總影格數 |
| 8 | CAP_PROP_FORMAT | 影片格式 |
| 9 | CAP_PROP_MODE | 擷取模式 |
| 10 | CAP_PROP_BRIGHTNESS | 攝影機亮度 |
| 11 | CAP_PROP_CONTRAST | 攝影機對比度 |
| 12 | CAP_PROP_SATURATION | 攝影機飽和度 |
| 13 | CAP_PROP_HUE | 攝影機色調 |
| 14 | CAP_PROP_GAIN | 攝影機增益 |
| 15 | CAP_PROP_EXPOSURE | 攝影機曝光度 |
| 16 | CAP_PROP_CONVERT_RGB | 是否轉換為 RGB |
👉 常用的屬性是 寬度、高度、FPS、總影格數、編碼器,其他屬性多半與攝影機參數有關。
🔍 進階分析
除了基本屬性之外,影片還能進一步分析:
- 影片長度:總影格數 ÷ FPS = 秒數
- 目前影格位置:可用於逐格處理或跳轉
- 編碼器轉換:將 FourCC 整數轉換為字串,方便辨識影片格式
範例程式:編碼器轉換
1 | import cv2 |

圖:影片編碼器轉換顯示
🧩 FourCC 位元拆解示例
範例一:1983148141 → mp4v
整數值:1983148141
16 進位表示:0x7634706D
| 位移 (i) | 運算式 (fourcc >> 8*i) & 0xFF |
十進位值 | 對應字元 |
|---|---|---|---|
| i = 0 | (1983148141 >> 0) & 0xFF | 109 | ‘m’ |
| i = 1 | (1983148141 >> 8) & 0xFF | 112 | ‘p’ |
| i = 2 | (1983148141 >> 16) & 0xFF | 52 | ‘4’ |
| i = 3 | (1983148141 >> 24) & 0xFF | 118 | ‘v’ |
👉 組合結果:"mp4v"
範例二:1668703592 → hevc
整數值:1668703592
16 進位表示:0x63766568
| 位移 (i) | 運算式 (fourcc >> 8*i) & 0xFF |
十進位值 | 對應字元 |
|---|---|---|---|
| i = 0 | (1668703592 >> 0) & 0xFF | 104 | ‘h’ |
| i = 1 | (1668703592 >> 8) & 0xFF | 101 | ‘e’ |
| i = 2 | (1668703592 >> 16) & 0xFF | 118 | ‘v’ |
| i = 3 | (1668703592 >> 24) & 0xFF | 99 | ‘c’ |
👉 組合結果:"hevc" (High Efficiency Video Coding, H.265)
⚠️ 注意事項
- 編碼器顯示問題:
CAP_PROP_FOURCC可能會顯示為整數,需要轉換成字串才能看懂。 - 跨平台差異:不同平台對影片屬性支援度不同,需測試。
- 影片長度計算:總影格數 ÷ FPS = 影片秒數。
🎯 結語
這一篇我們學會了如何查詢影片的基本屬性,包括總影格數、FPS、解析度與編碼器,並進一步分析影片長度與編碼器轉換。
接下來我們將回到圖片處理篇,下一篇將進一步學習 灰階化與色彩空間轉換,掌握圖片處理的更多技巧。
