抖音视频调动线性马达是如何实现的

1.抖音发现有些视频可以调动线性马达.
2. 这个功能是如何实现的实现的?

这个看下有用没:

#抖动视频图像处理
def video_shake_effect(img):
height, width, n = img.shape
new_img = img[int(height * 0.1):int(height * 0.9), int(width * 0.1):int(width * 0.9)]
new_img = cv2.resize(new_img, (width, height))
return new_img

if name == "main":
cap = cv2.VideoCapture("45.mp4")
#获取视频帧率,视频宽度高度,所有通过cv2.CAP_PROP_FPS获取的参数都是浮点数,而视频宽高必须为整数,所以要进行强制类型转换。
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
i = 1
count = 5
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
videoWriter = cv2.VideoWriter("output.avi", fourcc, fps, (width, height))
while (cap.isOpened()):
ret, frame = cap.read()
if ret:
if (i % 5 == 0 or 0 < count < 5):
frame = video_shake_effect(frame)
videoWriter.write(frame)
else:
count = 5
cv2.imshow('video', frame)
videoWriter.write(frame)
i += 1
c = cv2.waitKey(1)
if c == 27:
break
else:
break
cap.release()
videoWriter.release()
cv2.destroyAllWindows()

看一下是否有帮助。
抖音视频抖动原理
换到OpenCV中进行处理,就可以分为以下几个步骤:

读取原视频,设置其抖动的帧数,比如相邻的9帧的图像按照图像中心进行剪裁,然后缩放到原来的尺寸
设置抖动中不变的帧数,比如以9帧为间隔来处理图像

参考一下这篇文章