Python:Moviepy使图像更轻松

时间:2018-03-16 15:09:06

标签: python python-3.x moviepy

当我尝试生成编辑一个图像和指定音频剪辑的简单视频时,图像变得比原始图像轻得多。使用音频文件audio.wav和图像文件image.png,如下所示:

使用以下代码:

import os
if '/' in __file__:
    slash = '/'
else:
    slash = '\\'

import sys

os.chdir(slash.join(__file__.split(slash)[:-1]))


from moviepy.editor import *

FPS = 25

def create_video(audio, image):
    square = ImageClip(image)

    audio = AudioFileClip(audio)

    dur = audio.duration
    square.duration = dur

    ## When I originally posted the question I had the following two lines
    #square.set_audio(audio)
    #square.audio = audio

    ## A more elegant way to do the same thing (the problem still remains):
    square = square.set_audio(audio)
    ## The line "square.set_audio(audio)" does nothing, as tburrows13 commented

    return square

audio = 'audio.wav'
image = 'image.png'

result = create_video(audio, image)

result.write_videofile('video.mp4', fps=FPS)#, codec='mpeg4') # Many options...

生成的视频文件中的图像如下所示:

正如我们所看到的,灰色更轻,蓝色更轻。任何人都可以说出错误以及如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

看起来我自己设法解决了这个问题。图像需要采用jpg格式,png图像将变得更亮。

我将图片转换为jpg,这是新视频的屏幕截图:

screenshot

顺便说一下,图像的宽度和高度(以像素为单位)是偶数也很重要。否则媒体播放器可能无法显示图像,即使YouTube似乎接受了它们。