python 將視頻 通過(guò)視頻幀轉(zhuǎn)換成時(shí)間實(shí)例
我就廢話不多說(shuō)了,還是直接看代碼吧!
def frames_to_timecode(framerate,frames): ''' 視頻 通過(guò)視頻幀轉(zhuǎn)換成時(shí)間 :param framerate: 視頻幀率 :param frames: 當(dāng)前視頻幀數(shù) :return:時(shí)間(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
補(bǔ)充知識(shí):python+opencv截取指定幀的視頻段,同時(shí)轉(zhuǎn)換分辨率
在網(wǎng)上看了好久一直沒(méi)解決問(wèn)題,好多都是復(fù)制粘貼別人的東西,耽誤時(shí)間,小編在多次嘗試和修改后終于成功了,廢話不多說(shuō),直接上代碼:
import cv2videoCapture = 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
其中原視頻格式應(yīng)該轉(zhuǎn)換成 .mov(小編只在這種情況獲得成功,其他可以自行測(cè)試),如果需要調(diào)整分辨率的話,必須有:
frame=cv2.resize(frame,(350,256))
這一過(guò)程,否則視頻幀將無(wú)法寫入,視頻輸出大小為0。
有不足的地方希望指出,希望能幫到你!
以上這篇python 將視頻 通過(guò)視頻幀轉(zhuǎn)換成時(shí)間實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP.NET MVC使用Boostrap實(shí)現(xiàn)產(chǎn)品展示、查詢、排序、分頁(yè)2. ASP.NET MVC使用JSAjaxFileUploader插件實(shí)現(xiàn)單文件上傳3. 解決python logging遇到的坑 日志重復(fù)打印問(wèn)題4. python實(shí)現(xiàn)黃金分割法的示例代碼5. Python:UserWarning:此模式具有匹配組。要實(shí)際獲得組,請(qǐng)使用str.extract6. python如何保存7. Android Studio / IDEA kotlin 顯示 var 真實(shí)類型操作8. Spring boot基于ScheduledFuture實(shí)現(xiàn)定時(shí)任務(wù)9. Android實(shí)現(xiàn)下載進(jìn)度條效果10. PHP腳本的10個(gè)技巧(8)
