[Python]擷取 MP4 每一幀並以時間命名圖片(含範例影片)

更新 發佈閱讀 3 分鐘

在影像處理或機器學習的應用中,我們常常需要將影片逐幀擷取出來,進一步進行辨識或分析。

本篇教學將示範如何使用 Python + OpenCV 來:

讀取 MP4 影片

測試影片可由下方超連結下載,從file-examples.com下載

file-examples.com 是一個 免費提供各種檔案範例的網站,用於測試、示範或教學用途。

✅ 擷取每一幀的圖像 ✅ 根據每一幀對應的「影片時間(秒數)」來命名圖片 ✅ 自動儲存到指定資料夾中


🧰 1. 環境準備

首先,你需要安裝 Python 與 OpenCV 套件。

安裝 OpenCV:

pip install opencv-python

📜 2. Python 程式碼範例

將以下程式碼儲存為 extract_frames_by_time.py

import cv2
import os

def extract_frames_with_timestamp(video_path, output_dir):
# 建立輸出資料夾
if not os.path.exists(output_dir):
os.makedirs(output_dir)

# 開啟影片檔案
cap = cv2.VideoCapture(video_path)
if not cap.isOpened():
print("無法開啟影片")
return

fps = cap.get(cv2.CAP_PROP_FPS) # 每秒幀數
frame_count = 0

while True:
ret, frame = cap.read()
if not ret:
break # 讀到結尾

# 計算當前幀對應的時間戳(秒)
time_in_sec = frame_count / fps

# 產生以時間為基準的檔名
filename = os.path.join(output_dir, f"frame_{time_in_sec:.2f}s.jpg")

# 儲存圖片
cv2.imwrite(filename, frame)
print(f"已儲存:{filename}")

frame_count += 1

cap.release()
print("🎉 所有幀都已成功擷取完成!")

📂 3. 執行程式

使用範例:

video_path = "sample_video.mp4"     # 你的影片檔案名稱
output_dir = "output_frames_time" # 輸出資料夾

extract_frames_with_timestamp(video_path, output_dir)

影片檔名資訊

vocus|新世代的創作平台

📽️ 基本影片資訊:

vocus|新世代的創作平台

🖼️ 擷取圖片數量預測

你如果使用 cv2.VideoCapture + while 迴圈擷取 每一幀,那會得到:

📌 30 秒 × 30 幀/秒 = 900 張圖片

所以這支影片擷取出來會是 900 張 圖片

這會在 output_frames_time 資料夾中儲存如下檔名的圖片:

vocus|新世代的創作平台
frame_0.00s.jpg
frame_0.03s.jpg
frame_0.07s.jpg
...

這樣的命名方式能清楚對應圖片在影片中的時間點,對於訓練模型或標記資料特別方便。





留言
avatar-img
螃蟹_crab的沙龍
167會員
322內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2024/10/11
本文將指導你如何修改現有的 OpenCV 程式碼,使其利用 CUDA 加速進行深度神經網絡(DNN)推理,如超分辨率圖像放大任務。這將顯著提升運行速度,特別是在高分辨率圖像處理中。 在CMake上這選項要開,才可支援DNN模組。 CMake編譯OpenCV教學文 連結 [OpenCV][Py
Thumbnail
2024/10/11
本文將指導你如何修改現有的 OpenCV 程式碼,使其利用 CUDA 加速進行深度神經網絡(DNN)推理,如超分辨率圖像放大任務。這將顯著提升運行速度,特別是在高分辨率圖像處理中。 在CMake上這選項要開,才可支援DNN模組。 CMake編譯OpenCV教學文 連結 [OpenCV][Py
Thumbnail
2024/10/10
OpenCV 提供了專門針對 CUDA 優化的模組,這些模組使用 cv2.cuda 命名空間,並且可以直接使用 GPU 進行加速。,cv2.cuda 模塊需要在 OpenCV 編譯時啟用 CUDA 支援才能使用。 本文主要比較經過CMAKE重新編譯OpenCV使其支援Cuda,原OpenCV只支援
Thumbnail
2024/10/10
OpenCV 提供了專門針對 CUDA 優化的模組,這些模組使用 cv2.cuda 命名空間,並且可以直接使用 GPU 進行加速。,cv2.cuda 模塊需要在 OpenCV 編譯時啟用 CUDA 支援才能使用。 本文主要比較經過CMAKE重新編譯OpenCV使其支援Cuda,原OpenCV只支援
Thumbnail
2024/10/02
iPhone也有去背的功能,那麼OpenCV能不能做到這件事呢?,答案是可以的 如果圖像背景簡單且與前景有明顯的顏色區分,可以使用 色彩空間轉換 或 閥值分割。 如果背景較為複雜一點點,但你可以提供一個大致的前景位置,則可以使用 GrabCut。 結果圖 但在背景相當複雜的情況下,結果就不太
Thumbnail
2024/10/02
iPhone也有去背的功能,那麼OpenCV能不能做到這件事呢?,答案是可以的 如果圖像背景簡單且與前景有明顯的顏色區分,可以使用 色彩空間轉換 或 閥值分割。 如果背景較為複雜一點點,但你可以提供一個大致的前景位置,則可以使用 GrabCut。 結果圖 但在背景相當複雜的情況下,結果就不太
Thumbnail
看更多
你可能也想看
Thumbnail
在影像處理中,有時候我們只想特別關注某個感興趣的區域時,就是ROI的概念,擷取此範圍的圖像來做處理。 設定超過圖像邊界時就會報錯,本文主要介紹如何擷取影像的同時,避免設定錯誤造成程式崩潰的狀況。 擷取圖像示意圖 ROI程式範例 import cv2 import numpy as np
Thumbnail
在影像處理中,有時候我們只想特別關注某個感興趣的區域時,就是ROI的概念,擷取此範圍的圖像來做處理。 設定超過圖像邊界時就會報錯,本文主要介紹如何擷取影像的同時,避免設定錯誤造成程式崩潰的狀況。 擷取圖像示意圖 ROI程式範例 import cv2 import numpy as np
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。 本文將使用 NumPy 進行影像黑白反轉,並顯示反轉前後的影像。
Thumbnail
在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。 本文將使用 NumPy 進行影像黑白反轉,並顯示反轉前後的影像。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
使用cv2.imread讀取圖片時,如果路徑有包含到中文,就會報錯。 本文將提供另外一個方式cv2.imdecode,路徑有包含到中文時仍可以正常讀取圖片。 測試範例 import cv2 img = cv2.imread('D:/CRABpy/write/圖檔/chars_01.png'
Thumbnail
使用cv2.imread讀取圖片時,如果路徑有包含到中文,就會報錯。 本文將提供另外一個方式cv2.imdecode,路徑有包含到中文時仍可以正常讀取圖片。 測試範例 import cv2 img = cv2.imread('D:/CRABpy/write/圖檔/chars_01.png'
Thumbnail
本篇內容介紹如何使用 Python中的 moviepy library 簡單的剪影片。 先安裝moviepy library , 用pip install moviepy , 可參考官方文件。 要剪的影片和python檔要在同個資料夾中,若不在同個位置要用 os library 更換路徑
Thumbnail
本篇內容介紹如何使用 Python中的 moviepy library 簡單的剪影片。 先安裝moviepy library , 用pip install moviepy , 可參考官方文件。 要剪的影片和python檔要在同個資料夾中,若不在同個位置要用 os library 更換路徑
Thumbnail
當我們在進行影像處理時, 在Python的世界最常聽到的就是OpenCV, 而我們在處理影片時也會想要僅針對某時間段的影片進行處理, 今天我們就來教您如何透過OpenCV來讀取特定的時間區段。 在進入主題之前, 有一些基本概念務必先行建立, 一個影片是由多張圖片組成的, 因此最小單元為一張圖
Thumbnail
當我們在進行影像處理時, 在Python的世界最常聽到的就是OpenCV, 而我們在處理影片時也會想要僅針對某時間段的影片進行處理, 今天我們就來教您如何透過OpenCV來讀取特定的時間區段。 在進入主題之前, 有一些基本概念務必先行建立, 一個影片是由多張圖片組成的, 因此最小單元為一張圖
Thumbnail
EasyOCR是一個能夠幫助你對圖片中的文字進行辨識的工具,透過進階分析,可以應用在文件掃描、自動化數據輸入、發票掃描等領域。本章節將介紹如何安裝、引用模型、進行文字辨識、以及辨識結果的分析。透過學習,你可以建立屬於自己的文字辨識系統。
Thumbnail
EasyOCR是一個能夠幫助你對圖片中的文字進行辨識的工具,透過進階分析,可以應用在文件掃描、自動化數據輸入、發票掃描等領域。本章節將介紹如何安裝、引用模型、進行文字辨識、以及辨識結果的分析。透過學習,你可以建立屬於自己的文字辨識系統。
Thumbnail
此篇調查論文探討了Diffusion模型在文字、圖片和聲音轉換為影片,以及影片衍生和編輯的應用類型。作者也介紹了U-Net架構和Vision Transformer等生成圖像架構,並詳細探討了訓練模型的方法以及不同的影像資料集來源。
Thumbnail
此篇調查論文探討了Diffusion模型在文字、圖片和聲音轉換為影片,以及影片衍生和編輯的應用類型。作者也介紹了U-Net架構和Vision Transformer等生成圖像架構,並詳細探討了訓練模型的方法以及不同的影像資料集來源。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News