溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么將視頻通過視頻幀轉換成時間

發(fā)布時間:2020-08-01 10:17:03 來源:億速云 閱讀:293 作者:小豬 欄目:開發(fā)技術

這篇文章主要講解了python怎么將視頻通過視頻幀轉換成時間,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

我就廢話不多說了,還是直接看代碼吧!

def frames_to_timecode(framerate,frames):
 """
 視頻 通過視頻幀轉換成時間
 :param framerate: 視頻幀率
 :param frames: 當前視頻幀數
 :return:時間(00:00:01:01)
 """
 return '{0:02d}:{1:02d}:{2:02d}:{3:02d}'.format(int(frames / (3600 * framerate)),
             int(frames / (60 * framerate) % 60),
             int(frames / framerate % 60),
             int(frames % framerate))

print(frames_to_timecode(25,123))

00:00:04:23

補充知識:python+opencv截取指定幀的視頻段,同時轉換分辨率

在網上看了好久一直沒解決問題,好多都是復制粘貼別人的東西,耽誤時間,小編在多次嘗試和修改后終于成功了,廢話不多說,直接上代碼:

import cv2
videoCapture = cv2.VideoCapture('K:/test/00000.mov')
fps = 30 # 保存視頻的幀率
size = (350, 256) # 保存視頻的大小
 
videoWriter = cv2.VideoWriter('K:/test/0000_test.avi', cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'), fps, size)
i = 0
 
while True:
 success, frame = videoCapture.read()
 if success:
  i += 1
  print('i = ', i)
  if (i >= 1000 and i <= 2000):
   frame=cv2.resize(frame,(350,256))
   videoWriter.write(frame)
 
  if(i>2000):
   break
 else:
  print('end')
  break

其中原視頻格式應該轉換成 .mov(小編只在這種情況獲得成功,其他可以自行測試),如果需要調整分辨率的話,必須有:

frame=cv2.resize(frame,(350,256))

這一過程,否則視頻幀將無法寫入,視頻輸出大小為0。

有不足的地方希望指出,希望能幫到你!

看完上述內容,是不是對python怎么將視頻通過視頻幀轉換成時間有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI