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 将视频 通过视频帧转换成时间实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Socket有一个缓冲区,缓冲区是一个流,先进先出,发送和取出的可自定义大小的,如果取出的数据未取完缓冲区,则可能存在数据怠慢。本文通过实例代码给大家介绍Python中的Socket 与 ScoketServer 通信及遇到问题解决方法 ,需要的朋友参考下吧2019-04-04
详解Django中views数据查询使用locals()函数进行优化
这篇文章主要介绍了Django中views数据查询使用locals()函数进行优化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-08-08
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
这篇文章主要介绍了Python数据可视化编程 - 词云生成并保存(jieba+WordCloud),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-03-03


最新评论