我们将视频保存在移动客户端上,然后将其发送到服务器。在服务器上,我使用以下代码保存框架:
import skvideo.io
import cv2
haar =
'/home/ubuntu/opencv/data/haarcascades/haarcascade_frontalface_alt.xml'
face_cascade = cv2.CascadeClassifier(haar)
ret = True
video = 'my_video.mov'
i = 0
while ret == True:
cap = skvideo.io.VideoCapture(video)
ret, frame = cap.read()
cv2.imwrite('frame_'+str(i)+'.jpg',frame)
i+=1
Run Code Online (Sandbox Code Playgroud)
当我们在Windows Media Player或iTunes上播放视频时,它看起来不错。即玩家知道如何定向。
但是skvideo.io不知道,我们保存的那些帧会逆时针旋转90度。
我们如何将信息嵌入到skvideo知道正确方向的视频文件(.mov)文件中?
skvideo中有一个小故障,它没有读取可用的元数据。对于旋转拍摄的视频,但元数据包含此类参数。skvideo团队已提交修复程序,当前的skvideo版本1.1.7会从移动设备读取元数据,这表明应该对视频进行分级。然后skvideo.io.vread旋转文件:
1)使用更新的skvideo版本1.1.7,可以在https://github.com/scikit-video/scikit-video上克隆
2)您可以使用以下代码读取视频中的所有帧,最有可能的元数据将被读取
import skvideo.io
videogen = skvideo.io.vread(f.name)
Run Code Online (Sandbox Code Playgroud)
如果以人像模式拍摄,视频将自动旋转。
3)在skvideo回购上创建了一个问题,请看一下以获取更多参考:https : //github.com/scikit-video/scikit-video/issues/40
| 归档时间: |
|
| 查看次数: |
3820 次 |
| 最近记录: |