我使用以下代码捕获视频文件,翻转并保存它。
#To save a Video File
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,0)
# write the flipped frame
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
此程序将输出保存为输出。阿维
现在,为了播放视频文件,我使用了以下程序
#Playing Video from File
import numpy as np
import cv2
cap = cv2.VideoCapture('output.avi')
print cap.get(5) #to display frame rate of video
#print cap.get(cv2.cv.CV_CAP_PROP_FPS)
while(cap.isOpened()):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #convert to grayscale
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
此程序播放视频文件输出。avi从第一个程序保存。问题是,这段视频看起来很快。因此,我尝试更改cv2的延迟值。waitKey()。当我放100的时候,视频看起来很好。我如何知道该将哪个值放在那里?它应该与帧速率相关吗?我检查了输出的帧速率。avi(见第二个程序中的第5行)和第20行。但是如果我用20作为cv2的延迟。waitKey()视频还是太快了。
任何帮助都将不胜感激。
在imshow()之后放置
waitKey(60)
,它将以正常速度显示。
不管怎样,我尝试了各种设置cv2.wait键()延迟时间的技巧,但都失败了。我发现工作是尝试这样的东西:key=cv2.waitKey(1)
在你的同时(cap.is打开())像这样:
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
key = cv2.waitKey(1)
frame = cv2.flip(frame,0)
# write the flipped frame
out.write(frame)
cv2.imshow('frame',frame)
if key & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
我希望这能帮助其他人。
从OpenCV文档中:
函数cv。waitKey([,delay])
无限期地等待一个键事件(当延迟时
如果FPS等于20,那么在显示连续帧之间应该等待0.05秒。因此,只需将
waitKey(50)
放在imshow()
之后,以获得所需的播放速度。
在网上研究了几天后,我来这里寻求帮助。我目前正在为朋友们开发一个简短的2D游戏(实际上只是为了好玩),几天前我了解了剪辑。在这个游戏中,玩家可以收集物体(几乎就像马里奥中的硬币一样)。我的问题是,我在收集硬币时会发出非常短的声音(50kB约1秒),如果玩家在1秒钟内收集3个硬币,那么剪辑会使游戏延迟。如果先例剪辑已经结束,那么就没有延迟。但是如果先例剪辑没有结束,那么尝试再次播放剪辑会使游戏延迟(
问题内容: 我刚开始用Java编写代码,我正努力设置DelayQueue, 我想这样 我只是想学习所有的基础知识,并且从api上学到了内容,似乎无法掌握它。 提前致谢 问题答案: 该直到一定的延时已经过期保持要素内部。元素必须实现接口。 例如,我创建了一个扩展Delayed接口的类。这将实现compareTo和getDelay()方法 结果:
我正在开发一个音频播放器,它可以在后台播放音频文件。我的问题是,当录像机或视频播放器启动时,我需要暂停音频播放器。 有什么方法可以处理这个任务吗?例如,我有来处理这些调用。当我接到呼叫或wnat呼叫时,我们可以使用呼叫状态暂停播放器。我想为录像机或视频播放器以及相同的场景。当视频/录制开始时,我需要暂停音频播放器。
只是想知道是否有人能告诉我这是怎么回事。当我播放视频时,我可以听到音频,但视频不显示。这是我的代码,我是初学者
我在codename one是新的,我在codename one的文档中找不到任何关于如何从codename one的URL播放视频的东西。
通过该接口可以设置用户视频播放地址的有效时间 (需开通视频播放地址有效时长的设置权限), 地址为: http://spark.bokecc.com/api/authtimeout/update 需要传递以下参数: 参数 说明 userid 用户 id,不可为空 status 是否开启 自定义播放地址有效时长 0 关闭 (默认2小时,设置timeout值无效) ,1开启 (必须设置timeout值)