【问题标题】:Add transition effects and audio to the video which is created by still images in opencv在opencv中由静止图像创建的视频中添加过渡效果和音频
【发布时间】:2011-12-13 13:00:22
【问题描述】:

我正在使用 opencv 并使用图像数量成功创建了一个视频文件。现在我想为图像添加一些效果,过渡效果,就像我们在幻灯片放映中所拥有的那样,例如淡入或淡出。还有背景音频。可以用opencv做吗??

我还想延迟一秒显示一张图片?下面的代码在一秒钟内显示四个图像。我是opencv的新手,所以请帮忙。

import cv

im1 = cv.LoadImage("Sunset.jpg")
im2 = cv.LoadImage("Blue hills.jpg")
im3 = cv.LoadImage("Water lilies.jpg")
im4 = cv.LoadImage("Winter.jpg")

fps = 4.0
frame_size = cv.GetSize(im1)

writer = cv.CreateVideoWriter("out.avi", -1, fps, frame_size, True)

for i in range(4):
    print cv.WriteFrame(writer, eval('im' + str(i+1)))

del writer

【问题讨论】:

  • 我对opencv一无所知,但是您不希望fps = 1.0每秒获取一张图像吗?当然,如果要生成过渡图像,则需要 fps 为 4、10 或 30,具体取决于您希望视频的流畅程度。
  • 是的,我也使用了fps = 1.0。它在一秒钟内仅显示单个图像,但不显示其余图像。视频必须是 4 秒,因为我要添加四帧,但它只显示一帧。

标签: python image-processing opencv multimedia


【解决方案1】:

是和否。

OpenCV 不适用于编辑视频。我的意思是,您可以这样做,但它不是库的重点。但是,OpenCV 提供的图像处理技术可能会帮助您实现您正在寻找的那些酷炫效果,但由您来编写它们。

对于帧之间的暂停,请检查 sleep 函数(来自 python 的时间库)。

OpenCV 的目标是计算机视觉(音频/视频处理),​​而不是音频。您可能想看看 ffmpeg。我前段时间发布了一个答案,将 C 代码共享给play audio/video on a SDL window, using a combination of OpenCV to deal with images and FFmpeg to load audio stream from a video file

【讨论】:

    【解决方案2】:

    我还想延迟一秒显示一张图片?

    设置视频帧对你有帮助,如果你把帧设置为24,那么你应该

    for i in range(len(frame)):
        videoWriter.write(frame)
    

    然后你会得到第二个延迟显示的图像,所以你也可以将你的视频帧设置为 1,这将减少视频大小

    videoWriter = cv2.VideoWriter('sample.mp4', 
                                   fourcc,
                                   1,  # set your Frame-Per-Second here
                                  (567, 756))
    

    如何在电影文件中添加音频?

    opencv 中,没有很好的方法来做到这一点,因此,我使用moviepy 来做到这一点:

    import moviepy.editor as mpe
    my_clip = mpe.VideoFileClip('orginal_video.mp4')
    audio_background = mpe.AudioFileClip('music.mp3')
    final_audio = mpe.CompositeAudioClip([audio_background])
    final_clip = my_clip.set_audio(final_audio)
    # audio_codec="aac" could make final_clip played in iPhone/Android/PC
    final_clip.write_videofile("final_clip.mp4", audio_codec="aac")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 2012-10-30
      • 2016-03-31
      • 1970-01-01
      • 2018-04-02
      • 2017-05-14
      相关资源
      最近更新 更多