當前位置:首頁 » 編程語言 » python視頻處理

python視頻處理

發布時間: 2023-12-04 16:23:39

A. 如何用python實現視頻關鍵幀提取並保存為圖片

參考代碼如下:
import
cv2
vc
=
cv2.VideoCapture('Test.avi')
#讀入視頻文件
c=1
if
vc.isOpened():
#判斷是否正常打開
rval
,
frame
=
vc.read()
else:
rval
=
False
timeF
=
1000
#視頻幀計數間隔頻率
while
rval:

#循環讀取視頻幀
rval,
frame
=
vc.read()
if(c%timeF
==
0):
#每隔timeF幀進行存儲操作
cv2.imwrite('image/'+str(c)
+
'.jpg',frame)
#存儲為圖像
c
=
c
+
1
cv2.waitKey(1)
vc.release()

B. python如何用opencv把一個視頻按每10秒一小段切下來

你好,下面是相應的一個代碼,你可以參考一下:

importcv2
importos
#先導入openCV
#將一個長的視頻縮短,按照比例縮短,只保存其中的一部分
#如下面代碼就是將一個長視頻每10秒取10秒,合並成一個短視頻
cap=cv2.VideoCapture('myvideo.avi')
ifnotcap.isOpened():
print('videoisnotopened')
else:
#每秒25幀
num=0
#取10秒
needTime=250
#每10秒
timeSpace=250
#獲取視頻幀率
fps=cap.get(cv2.CAP_PROP_FPS)
#AVI格式編碼輸出XVID
videoWriter=cv2.VideoWriter('result//resultVideo_2.avi',cv2.VideoWriter_fourcc('X','V','I','D'),fps,frameSize=(320,288))
while(1):
success,frame=cap.read()
if(num%timeSpace<=needTime):
videoWriter.write(frame)
print('write'+str(num))
num=num+1
ifnotsuccess:
print('finished')
break
ifcv2.waitKey(100)&0xFF==ord('q'):
break
cap.release()

C. ffmpeg-python中文文檔(三)——API參考

表示上游節點的傳出邊緣;可以用來創建更多的下游節點。

輸入文件 URL (ffmpeg -i option)

在一個 ffmpeg 命令行中包含所有給定的輸出

輸出文件地址

不詢問就覆蓋輸出文件(ffmpeg -y 選項)

在指定文件上運行 ffprobe 並返回輸出的 JSON 表示。

構建用於調用 ffmpeg 的命令行。

構建要傳遞給 ffmpeg 的命令行參數。

為提供的節點圖調用 ffmpeg 。

參數

為提供的節點圖非同步調用 ffmpeg。

參數

例子

運行和流式輸入:

運行並捕獲輸出:

使用 numpy 逐幀處理視頻:

通過重新混合顏色通道來調整視頻輸入幀。

連接音頻和視頻流,將它們一個接一個地連接在一起。

篩選器適用於同步視頻和音頻流的片段。所有段必須具有每種類型的相同數量的流,這也是輸出時的流數。

參數

裁剪輸入視頻。

參數

在輸入圖像上繪制一個彩色框。

參數

使用 libfreetype 庫從視頻頂部的指定文件中繪制文本字元串或文本。

要啟用此過濾器的編譯,您需要使用 --enable-libfreetype . 要啟用默認字體回退和字體選項,您需要使用 --enable-libfontconfig . 要啟用 text_shaping 選項,您需要使用 --enable-libfribidi

參數

· box - 用於使用背景顏色在文本周圍繪制一個框。該值必須是 1(啟用)或 0(禁用)。框的默認值為 0。

· boxborderw – 使用 boxcolor 設置要在框周圍繪制的邊框寬度。boxborderw 的默認值為 0。

· boxcolor - 用於在文本周圍繪制框的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。 boxcolor 的默認值為「white」。

· line_spacing – 使用 box 設置要在框周圍繪制的邊框的行間距(以像素為單位)。line_spacing 的默認值為 0。

· borderw – 使用邊框顏色設置要在文本周圍繪制的邊框寬度。邊框的默認值為 0。

· bordercolor – 設置用於在文本周圍繪制邊框的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。邊框顏色的默認值為「黑色」。

· 擴展- 選擇文本的擴展方式。可以是 none、strftime(已棄用)或 normal(默認)。有關詳細信息,請參閱下面的文本擴展部分。

· basetime – 設置計數的開始時間。值以微秒為單位。僅適用於已棄用的 strftime 擴展模式。要在正常擴展模式下進行模擬,請使用 pts 函數,提供開始時間(以秒為單位)作為第二個參數。

· fix_bounds - 如果為 true,檢查並修復文本坐標以避免剪切。

· fontcolor - 用於繪制字體的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。fontcolor 的默認值為「黑色」。

· fontcolor_expr – 與文本相同的擴展字元串以獲得動態字體顏色值。默認情況下,此選項具有空值並且不被處理。設置此選項時,它會覆蓋 fontcolor 選項。

· font - 用於繪制文本的字體系列。默認情況下無。

· fontfile – 用於繪制文本的字體文件。必須包含路徑。如果禁用了 fontconfig 支持,則此參數是必需的。

· alpha – 繪制應用 alpha 混合的文本。該值可以是介於 0.0 和 1.0 之間的數字。該表達式也接受相同的變數 x、y。默認值為 1。請參閱 fontcolor_expr。

· fontsize – 用於繪制文本的字體大小。字體大小的默認值為 16。

· text_shaping – 如果設置為 1,則在繪制文本之前嘗試對文本進行整形(例如,反轉從右到左文本的順序並加入阿拉伯字元)。否則,只需按照給定的方式繪制文本。默認為 1(如果支持)。

· ft_load_flags –用於載入字體的標志。這些標志映射了 libfreetype 支持的相應標志,並且是以下值的組合:

默認值為「默認」。有關更多信息,請參閱 FT_LOAD_* libfreetype 標志的文檔。

· shadowcolor – 用於在已繪制文本後面繪制陰影的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。shadowcolor 的默認值為「黑色」。

· shadowx – 文本陰影位置相對於文本位置的 x 偏移量。它可以是正值或負值。默認值為「0」。

· shadowy – 文本陰影位置相對於文本位置的 y 偏移量。它可以是正值或負值。默認值為「0」。

· start_number – n/frame_num 變數的起始幀號。默認值為「0」。

· tabsize - 用於呈現選項卡的空格數大小。默認值為 4。

· timecode – 以「hh:mm:ss[:;.]ff」格式設置初始時間碼表示。它可以帶或不帶文本參數使用。必須指定 timecode_rate 選項。

· rate – 設置時間碼幀率(僅限時間碼)。

· timecode_rate – 的別名rate。

· r – 的別名rate。

· tc24hmax – 如果設置為 1,時間碼選項的輸出將在 24 小時左右回繞。默認值為 0(禁用)。

· text -- 要繪制的文本字元串。文本必須是 UTF-8 編碼字元序列。如果沒有使用參數 textfile 指定文件,則此參數是必需的。

· textfile – 包含要繪制的文本的文本文件。文本必須是 UTF-8 編碼字元序列。如果沒有使用參數 text 指定文本字元串,則此參數是必需的。如果同時指定了 text 和 textfile,則會引發錯誤。

· reload – 如果設置為 1,文本文件將在每一幀之前重新載入。一定要自動更新它,否則它可能會被部分讀取,甚至失敗。

· x – 指定將在視頻幀內繪制文本的偏移量的表達式。它相對於輸出圖像的左邊框。默認值為「0」。

· y - 指定將在視頻幀內繪制文本的偏移量的表達式。它相對於輸出圖像的上邊框。默認值為「0」。有關接受的常量和函數的列表,請參見下文。

表達式常量:

x 和 y 的參數是包含以下常量和函數的表達式:

· dar:輸入顯示縱橫比,同 (w / h) * sar

· hsub:水平色度子樣本值。例如,對於像素格式「yuv422p」,hsub 為 2,vsub 為 1。

· vsub:垂直色度子樣本值。例如,對於像素格式「yuv422p」,hsub 為 2,vsub 為 1。

· line_h:每個文本行的高度

· lh:別名為line_h.

· main_h:輸入高度

· h: 的別名main_h。

· H: 的別名main_h。

· main_w:輸入寬度

· w: 的別名main_w。

· W: 的別名main_w。

· ascent:對於所有渲染的字形,從基線到用於放置字形輪廓點的最高/上網格坐標的最大距離。這是一個正值,因為網格的 Y 軸向上。

· max_glyph_a: 的別名ascent。

· 下降:對於所有渲染的字形,從基線到用於放置字形輪廓點的最低網格坐標的最大距離。由於網格的方向,這是一個負值,Y 軸向上。

· max_glyph_d: 的別名descent。

· max_glyph_h:最大字形高度,即渲染文本中包含的所有字形的最大高度,相當於上升-下降。

· max_glyph_w:最大字形寬度,即渲染文本中包含的所有字形的最大寬度。

· n:輸入幀數,從0開始

· rand(min, max):返回一個包含在 min 和 max 之間的隨機數

· sar:輸入樣本縱橫比。

· t:時間戳,以秒為單位,如果輸入時間戳未知,則為 NAN

· text_h:渲染文本的高度

· th: 的別名text_h。

· text_w:渲染文本的寬度

· tw: 的別名text_w。

· x:繪制文本的 x 偏移坐標。

· y:繪制文本的 y 偏移坐標。

這些參數允許 x 和 y 表達式相互引用,因此您可以例如指定 y=x/dar.

應用自定義過濾器。

filter通常由更高級別的過濾器函數使用,例如 hflip ,但如果缺少過濾器實現 ffmpeg-python ,您可以 filter 直接調用以 ffmpeg-python 將過濾器名稱和參數逐字傳遞給 ffmpeg 。

參數

函數名稱後綴_是為了避免與標准 pythonfilter 函數混淆。

例子

替代名稱 filter ,以免與內置的 pythonfilter 運算符沖突。

應用具有一個或多個輸出的自定義過濾器。

這 filter 與過濾器可以產生多個輸出相同。

要引用輸出流,請使用 .stream 運算符或括弧簡寫:

例子

水平翻轉輸入視頻。

修改輸入的色調和/或飽和度。

參數

將一個視頻疊加在另一個視頻之上。

參數

更改輸入幀的 PTS(表示時間戳)。

FFmpeg里有兩種時間戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顧名思義,前者是解碼的時間,後者是顯示的時間。

參數

修剪輸入,使輸出包含輸入的一個連續子部分。

參數

垂直翻轉輸入視頻。

應用縮放和平移效果。

參數

熱點內容
Linux配置yum源是什麼意思 發布:2024-11-02 09:18:13 瀏覽:525
光遇安卓如何拍出高質量視頻 發布:2024-11-02 09:17:36 瀏覽:746
沒做過理財怎麼配置自己的資產 發布:2024-11-02 09:13:18 瀏覽:371
磐石雲伺服器存儲 發布:2024-11-02 09:12:42 瀏覽:963
評論功能php 發布:2024-11-02 09:04:44 瀏覽:933
mechanizepython 發布:2024-11-02 09:04:40 瀏覽:266
管家婆資料庫密碼 發布:2024-11-02 08:58:18 瀏覽:343
安卓英雄聯盟怎麼下不了 發布:2024-11-02 08:54:02 瀏覽:761
pubg選什麼伺服器沒有延遲 發布:2024-11-02 08:41:49 瀏覽:174
腳本安裝linux 發布:2024-11-02 08:36:54 瀏覽:897