我们将视频保存在移动客户端上并将其发送到服务器。在服务器上,我使用以下代码来保存帧:>
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
当我们在 Windows Media Player 或 iTunes 上播放视频时,它看起来不错。 IE。玩家知道如何定位它。
但 skvideo.io 不知道这一点,我们保存的那些帧逆时针旋转了 90 度。
我们如何将信息嵌入到视频文件(.mov)文件中,让 skvideo 知道正确的方向?
skvideo 出现故障,它没有读取可用的元数据。对于在移动设备中拍摄的视频会进行旋转,但元数据包含此类参数。 skvideo 团队提交了修复程序,当前 skvideo 版本 1.1.7 从移动设备读取元数据,这表明视频应该旋转。 skvideo.io.vread 然后旋转文件:
1)使用较新的skvideo版本1.1.7,可以在以下位置克隆https://github.com/scikit-video/scikit-video https://github.com/scikit-video/scikit-video
2)您可以使用以下代码读取视频中的所有帧,很可能会读取元数据
import skvideo.io
videogen = skvideo.io.vread(f.name)
如果视频是以纵向模式拍摄的,则会自动旋转视频。
3) 在 skvideo repo 上创建了一个问题,查看更多参考:https://github.com/scikit-video/scikit-video/issues/40 https://github.com/scikit-video/scikit-video/issues/40
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)