Добавьте эффекты перехода и аудио к видео, которое создается неподвижными изображениями в opencv
Я использую opencv и успешно создал видео файл, используя количество изображений. Теперь я хочу добавить некоторые эффекты к изображениям, эффекты перехода, которые мы обычно используем в слайд-шоу, например, FadeIn или FadeOut. И фоновое аудио тоже. Можно ли это сделать с 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
2 ответа
И да и нет.
OpenCV не предназначен для редактирования видео. Я имею в виду, вы можете сделать это, но это не в центре внимания библиотеки. Тем не менее, OpenCV предлагает методы обработки изображений, которые могут помочь вам достичь тех интересных эффектов, которые вы ищете, но вы должны их написать.
Чтобы сделать паузу между кадрами, проверьте функцию сна (из библиотеки времени Python).
OpenCV ориентирован на компьютерное зрение (обработка аудио / видео), а не на аудио. Возможно, вы захотите взглянуть на ffmpeg для этого. Некоторое время назад я опубликовал ответ о том, что совместно использует код C для воспроизведения аудио / видео в окне SDL, используя комбинацию OpenCV для работы с изображениями и FFmpeg для загрузки аудиопотока из видеофайла.
Также я хочу показать одно изображение с задержкой в одну секунду?
Установка видеокадра поможет вам, если вы установите кадр на 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")