日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python opencv输出mp4_Python玩转视频处理(四):视频按场景进行分割

發布時間:2023/12/10 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python opencv输出mp4_Python玩转视频处理(四):视频按场景进行分割 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上一篇文章(python在手,女神視頻輕松有)分享了用AI人臉識別技術標記人物出現時間點來截取視頻片段的教程,它的局限性在于只能通過識別特定的對象(比如人臉)來操作。在本文中將分享一個按場景進行分割視頻的工具——PySceneDetect。

下面開始介紹下PySceneDetect及其安裝使用方法。

1. 什么是PySceneDetect

PySceneDetect是一個命令行工具和Python庫,用于分析視頻,查找場景更改或剪輯。

PySceneDetect集成了外部工具(例如mkvmerge , ffmpeg ),可在使用split-video命令時自動將視頻分割為單個片段。還可以為視頻生成逐幀分析,稱為統計文件,以幫助確定最佳閾值或檢測特定視頻的模式/其他分析方法。

PySceneDetect使用兩種主要的檢測方法: detect-threshold (將每個幀與設置的黑電平進行比較,對于檢測從黑色到黑色的淡入和淡出有用)和detect-content (比較每個幀,依次查找內容的變化,有用)用于檢測視頻場景之間的快速切換,盡管處理速度較慢)。每種模式的參數略有不同,并在文檔中進行了詳細說明.。

通常,如果要使用淡入/淡出/切成黑色來檢測場景邊界,請使用檢測閾值模式。如果視頻在內容之間使用大量快速剪切,并且沒有明確定義的場景邊界,則應使用" 檢測內容"模式。一旦知道要使用哪種檢測模式,就可以嘗試以下建議的參數,或生成統計文件(使用-s / –stats參數),以確定正確的參數-具體來說,是正確的閾值.

2. PySceneDetect的安裝

PySceneDetect依賴于Python模塊numpy,OpenCV(cv2模塊)和tqdm(進度條模塊,用來顯示處理進度),安裝命令如下:

$ pip install scenedetect

PySceneDetect基于ffmpeg和mkvmerge對視頻進行裁剪。

ffmpeg 是一個開源軟件,可以運行音頻和視頻多種格式的錄影、轉換、流功能,它功能強大,用途廣泛,是視頻處理最常用的開源軟件。
mkvmerge是MKV工具集MKVToolNix中的一個軟件,可以將多媒體文件封裝、合并、混流為 MKV 文件。

安裝完成后可以通過命令行或代碼兩種方式進行使用。

3. 命令行使用

PySceneDetect在命令行中使用scenedetect命令進行操作,命令格式如下:

$ scenedetect --input my_video.mp4 --output my_video_scenes --stats my_video.stats.csv detect-content list-scenes save-images

參數說明:

常用的參數說明如下:

  • –input :輸入視頻文件的路徑
  • –output :指定輸出目錄(可選)
  • –stats:生成統計文件(可選)
  • time:用于設置輸入視頻持續時間/長度或開始/結束時間。
  • detect-content:切分視頻基于內容檢測算法。
  • detect-threshold:切分視頻基于閾值檢測算法。
  • list-scenes:打印場景列表并輸出到CSV文件。
  • save-images:為每個場景保存視頻中的圖像。
  • split-video:使用ffmpeg或mkvMerge對視頻進行分割。

完整的參數列表可使用scenedetect help all命令進行查看。

示例:

$ scenedetect --input demo.mp4 detect-content list-scenes save-images split-video

運行完成后會在當前文件夾生成視頻片段,片段截圖以及csv文件,如下:

demo-Scene-001-01.jpg demo-Scene-004-03.jpg ... demo-Scene-001-02.jpg demo-Scene-004.mp4 ... demo-Scenes.csv

csv文件中包含片段的幀、時間、長度等信息,內容如下:

Timecode List: 00:07.9 00:14.6 00:38.7 00:45.3 00:48.9 01:00.0 01:12.3 01:21.5 01:36.3 Scene Number Start Frame Start Timecode Start Time (seconds) End Frame End Timecode End Time (seconds) Length (frames) Length (timecode) Length (seconds) 1 0 00:00.0 0 190 00:07.9 7.917 190 00:07.9 7.917 2 190 00:07.9 7.917 350 00:14.6 14.583 160 00:06.7 6.667 3 350 00:14.6 14.583 928 00:38.7 38.667 578 00:24.1 24.083 ...

4. 在Python中使用

在Python中使用PySceneDetect主要用到下面幾個類:

  • VideoManager:用于加載視頻并提供搜索;
  • SceneManager:用于協調SceneDetector,VideoManager和可選的StatsManager對象的高級管理器;
  • FrameTimecode:用于存儲時間碼以及對時間碼值進行算術運算(加/減/比較),并具有幀級的精確度;
  • StatsManager:用于存儲/緩存幀指標,以加快在同一視頻上后續場景檢測的運行速度,并可以保存到CSV文件或從CSV中加載緩存;
  • SceneDetector:用于實現檢測算法的基類,如ContentDetector,ThresholdDetector等。

官方的示例代碼如下:

from __future__ import print_function import osimport scenedetect from scenedetect.video_manager import VideoManager from scenedetect.scene_manager import SceneManager from scenedetect.frame_timecode import FrameTimecode from scenedetect.stats_manager import StatsManager from scenedetect.detectors import ContentDetectorSTATS_FILE_PATH = 'testvideo.stats.csv'def main():# Create a video_manager point to video file testvideo.mp4. Note that multiple# videos can be appended by simply specifying more file paths in the list# passed to the VideoManager constructor. Note that appending multiple videos# requires that they all have the same frame size, and optionally, framerate.video_manager = VideoManager(['testvideo.mp4'])stats_manager = StatsManager()scene_manager = SceneManager(stats_manager)# Add ContentDetector algorithm (constructor takes detector options like threshold).scene_manager.add_detector(ContentDetector())base_timecode = video_manager.get_base_timecode()try:# If stats file exists, load it.if os.path.exists(STATS_FILE_PATH):# Read stats from CSV file opened in read mode:with open(STATS_FILE_PATH, 'r') as stats_file:stats_manager.load_from_csv(stats_file, base_timecode)start_time = base_timecode + 20 # 00:00:00.667end_time = base_timecode + 20.0 # 00:00:20.000# Set video_manager duration to read frames from 00:00:00 to 00:00:20.video_manager.set_duration(start_time=start_time, end_time=end_time)# Set downscale factor to improve processing speed.video_manager.set_downscale_factor()# Start video_manager.video_manager.start()# Perform scene detection on video_manager.scene_manager.detect_scenes(frame_source=video_manager)# Obtain list of detected scenes.scene_list = scene_manager.get_scene_list(base_timecode)# Like FrameTimecodes, each scene in the scene_list can be sorted if the# list of scenes becomes unsorted.print('List of scenes obtained:')for i, scene in enumerate(scene_list):print(' Scene %2d: Start %s / Frame %d, End %s / Frame %d' % (i+1,scene[0].get_timecode(), scene[0].get_frames(),scene[1].get_timecode(), scene[1].get_frames(),))# We only write to the stats file if a save is required:if stats_manager.is_save_required():with open(STATS_FILE_PATH, 'w') as stats_file:stats_manager.save_to_csv(stats_file, base_timecode)finally:video_manager.release()if __name__ == "__main__":main() Python Interface & Integration With Other Applications?pyscenedetect.readthedocs.io

總結

以上是生活随笔為你收集整理的python opencv输出mp4_Python玩转视频处理(四):视频按场景进行分割的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色一情一乱一区二区三区 | 免费看黄在线观看 | 欧美精品免费在线 | 日本a在线 | 操极品女神 | 久色免费视频 | 26uuu国产精品视频 | 免费看成人片 | 强制憋尿play黄文尿奴 | wwwwww国产 | 日本高清视频www | 成人黄色网址在线观看 | 欧美日韩国产精品一区 | 四虎福利视频 | 青青青青草 | 青娱乐国产盛宴 | 国产精品久久久久久久久晋中 | 在线观看视频www | 午夜神马影院 | 一区二区三区免费观看视频 | 91精品看片 | 91国产大片 | 你懂的网址在线观看 | 操她视频在线观看 | 3d动漫精品啪啪一区二区竹菊 | 欧美一区国产一区 | 一本大道一区二区 | 日本亚洲欧洲色 | 久久亚洲综合国产精品99麻豆精品福利 | 国产午夜精品一区二区理论影院 | 精品麻豆av | 被室友玩屁股(h)男男 | 99久久精品免费看国产四区 | 欧美色涩在线第一页 | 第一福利在线 | 日韩精品在线视频观看 | 精品国偷自产在线 | 欧美xxxx69| 国产成人一级 | av小说在线 | 天天色棕合合合合合合合 | 亚洲视频 欧美视频 | 日韩一区二区三区久久 | 亚洲av永久无码精品 | 天堂网色 | www男人天堂 | 久久九九免费 | 午夜精品小视频 | 国产丰满大乳奶水在线视频 | 国产精品制服诱惑 | 黄瓜视频在线观看污 | 久久久精品一区二区涩爱 | 日韩av影片| 成人性生交视频免费观看 | 黄色国产小视频 | 91丨porny丨成人蝌蚪 | 国产黄色大片 | 福利视频一区二区三区 | 久久精品视频免费 | 亚洲激情电影在线 | 综合色网站| 91丨porny丨海角社区 | 色屁屁影院www国产高清麻豆 | 天堂色在线 | 激情 亚洲 | 欧美黑粗大 | 在线a网 | 欧美丝袜视频 | √天堂资源在线 | 超碰伊人网| 毛片网在线观看 | 北条麻妃av在线播放 | 91l九色lporny | av在线免费网站 | 国产午夜电影 | 熟妇毛片 | 搞逼综合网 | 国产在线观看免费视频软件 | 久啪视频 | 色视频在线看 | 国产精品午夜视频 | 日韩有码视频在线 | 免费在线h| 日本边添边摸边做边爱 | 麻豆影音先锋 | 性做久久久久久免费观看欧美 | 色婷婷av一区二区三 | 亚洲av无码日韩精品影片 | 五月婷在线视频 | 无码h肉动漫在线观看 | 性xxxxxxxxx| 丰满少妇中文字幕 | 日韩资源在线 | 日本国产网站 | 91成人免费观看 | 美女露出让男生揉的视频 | 日韩不卡在线视频 | 男女污污视频在线观看 | 那里可以看毛片 |