Zhooleh Ответов: 1

Как записать видеофайл из моего кода Python, который создает движущийся объект


Hi everybody. I've created a moving object and now I need to record it as a video to use it in another website. I looked at youtube videos but I couldn't find anything. I appreciate it a lot if anybody here can help me.
Here is my code:


<pre>import pygame
 
pygame.init()
screen=pygame.display.set_mode((1000,1000)) 
 
pygame.display.set_caption('visual rhythm')
icon=pygame.image.load("song.png")
pygame.display.set_icon(icon)
 
playerImg=pygame.image.load('spaceship.png')
playerX=370
playerY=400
def player(x,y):
    screen.blit(playerImg,(int(x),int(y)))
 
speed=[4000, -2000 , 2000 , -1000 , 1333 , -4000]
count=0
count2=0
clock=pygame.time.Clock()
while count2<len(speed):
    screen.fill((0,255,0))
    milli=clock.tick()
    seconds=milli/1000.0
    dm=seconds*speed[count]
    playerY+=dm
    player(playerX,playerY)
    pygame.display.update()
    if playerY>=946 or playerY<1:
        count+=1
        count2+=1


Что я уже пробовал:

Я пробовал этот код, но он не работает!
<pre>import pygame
import numpy as np
import cv2

cap=cv2.VideoCapture(0)

pygame.init()
screen=pygame.display.set_mode((1000,1000)) 

pygame.display.set_caption('visual rhythm')
icon=pygame.image.load("song.png")
pygame.display.set_icon(icon)

playerImg=pygame.image.load('spaceship.png')
playerX=370
playerY=400
def player(x,y):
    screen.blit(playerImg,(int(x),int(y)))

fourcc=cv2.VideoWriter_fourcc(*'XVID')
out=cv2.VideoWriter('movement.mp4',fourcc,20.0,(640,480))

speed=[4000, -2000 , 2000 , -1000 , 1333 , -4000]
count=0
count2=0
clock=pygame.time.Clock()
while count2<len(speed):
    screen.fill((0,255,0))
    milli=clock.tick()
    seconds=milli/1000.0
    dm=seconds*speed[count]
    playerY+=dm
    player(playerX,playerY)
    pygame.display.update()
    if playerY>=946 or playerY<1:
        count+=1
        count2+=1

cap.release()
cv2.destroyAllWindows()

1 Ответов

Рейтинг:
2

Sandeep Mewara

Здесь попробуйте сделать следующее:

# import the opencv library 
import cv2 
  
  
# define a video capture object 
vid = cv2.VideoCapture(0) 
  
while(True): 
      
    # Capture the video frame 
    # by frame 
    ret, frame = vid.read() 
  
    # Display the resulting frame 
    cv2.imshow('frame', frame) 
      
    # the 'q' button is set as the 
    # quitting button you may use any 
    # desired button of your choice 
    if cv2.waitKey(1) &amp; 0xFF == ord('q'): 
        break
  
# After the loop release the cap object 
vid.release() 
# Destroy all the windows 
cv2.destroyAllWindows()

Ссылка: Python OpenCV: захват видео с камеры - GeeksforGeeks[^]

Еще несколько дополнительных ссылок, которые могли бы помочь:
Как сделать экранный рекордер на Python - Python Code[^]
Начало работы с видео — OpenCV-Python Tutorials 1 документация[^]
Генерация фильма из python без сохранения отдельных кадров в файлы - переполнение стека[^]


Zhooleh

Большое спасибо за вашу помощь. Единственное, где в вашем коде я должен поместить свой код для создания движущегося объекта? Я имею в виду, что ваш код должен быть включен в мой код для захвата видео во время работы. Так ведь?

Sandeep Mewara

Попробуй посмотреть объявление. Все детали и URL-адреса находятся там, чтобы помочь/направлять. Они работают с кодом для запуска и просмотра.