How can I play a mp4 movie using Moviepy and Pygame [duplicate]
Asked Answered
B

4

6

How do you play an mp4 video in Pygame?

I have tried pygame.movie but this does not work...

Theres also moviepy, but I am having trouble changing the title of the window that pops up. It says "MoviePy", not sure how to change that.

import moviepy
from moviepy.editor import *
import os


os.environ["SDL_VIDEO_CENTERED"] = "1"

clip = VideoFileClip('qq.mp4')


clip.preview()

execfile("qq.py") # Execute my game right after the clip shows

How would I change the title from "MoviePy" to my "my game name"

Any help would be appreciated!

Balanchine answered 20/1, 2017 at 9:40 Comment(0)
C
10

First: you can use

import moviepy

print(moviepy.__file__)

to find source code and see how it works.


After searching in source code you will see that it uses pygame to display it and you can try to use pygame function set_caption() to change title.

from moviepy.editor import *
import pygame

pygame.display.set_caption('Hello World!')

clip = VideoFileClip('video.mp4')
clip.preview()

pygame.quit()
Cislunar answered 20/1, 2017 at 19:58 Comment(2)
This example doesn't work for me: IndexError: bytes to write exceed buffer sizeTrite
@Trite better create question - you will have more place to put FULL error message and code. It seems it has nothing to do with main problem in this question - which was adding caption to window.Cislunar
T
2

Have you tried converting from mp4 to the .mpg file format (MPEG-1 video, MPEG-1 Audio Layer III (MP3) sound) using ffmpeg video conversion program (http://ffmpeg.org/):

ffmpeg -i <infile> -vcodec mpeg1video -acodec libmp3lame -intra <outfile.mpg>

(Pygame can playback video and audio from basic encoded MPEG-1 video files)

Tercel answered 20/1, 2017 at 9:59 Comment(3)
Thanks for the fast response! I did what you said but I get this error message when using Pygame movie: raise NotImplementedError(MissingPygameModule) NotImplementedError: movie module not available (ImportError: No module named movie)Balanchine
@Balanchine Are you using pygame or not? In your example you don't. If you are: pygame.movie don't work. It's outdated.Barbican
I don't mind how I show the opening video. It can be pygame or anything else. Because I could not find anything in pygame, I decided to use moviepy just to show it and then after it finishes, I use execfile("qq.py") to go straight to my game. My problem with moviepy is that I don't know how to change the title bar. It shows "MoviePy"...Balanchine
R
2
from moviepy.editor import *

import pygame

pygame.init()

pygame.display.set_caption('Show Video on screen')

video = VideoFileClip('name_of_your video.mp4')
video.preview()

pygame.quit()
Rebellion answered 23/12, 2020 at 7:43 Comment(0)
F
0

I use this code and it work,you need moviepy and pydub libraries to let it work.

id_path='我不是购物狂 EP15 Rebirth Of Shopping Addicts EP15_HIGH.mp4' # Name of the video
au_path='Produce.wav'
import moviepy.editor as mp
video = mp.VideoFileClip(vid_path)
from pydub import AudioSegment
from pydub.playback import play
video.preview()
song = AudioSegment.from_wav(au_path)
play(song)
Forint answered 27/6, 2020 at 0:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.