示例#1
0
def annotate(clip, txt, speaker, txt_color='white', fontsize=30, font='Arial'):
    """ Writes a text at the bottom of the clip. """
    txt_colors = ['red', 'black', 'white', 'blue', 'green']
    txtclip = TextClip(txt,
                       fontsize=fontsize,
                       font=font,
                       color=txt_colors[speaker])
    cvc = CompositeVideoClip([clip, txtclip.set_pos(('center', 'bottom'))])
    return cvc.set_duration(clip.duration)
示例#2
0
def annotate(chip, txt, txt_color='white', font_size=20):
    txt_clip = TextClip(txt, fontsize=font_size, color=txt_color)
    cvc = CompositeVideoClip(
        [chip, txt_clip.set_position(("center", "bottom"))])
    return cvc.set_duration(chip.duration)
示例#3
0
    sys.stdout.write('\r')
    sys.stdout.write("Wrote %s to file" % p["filename"])
    sys.stdout.flush()

if a.OVERWRITE:
    removeFiles(a.OUTPUT_FRAME % "*")

drawData = sampledata + phrasedata

threads = getThreadCount(a.THREADS)
pool = ThreadPool(threads)
pclipsToFrame = partial(doFrame, totalFrames=totalFrames, drawData=drawData)
pool.map(pclipsToFrame, frameProps)
pool.close()
pool.join()

annotationVideoFn = appendToBasename(a.OUTPUT_FILE, "_annotation")
if a.OVERWRITE or not os.path.isfile(annotationVideoFn):
    compileFrames(a.OUTPUT_FRAME, fps, annotationVideoFn, getZeroPadding(totalFrames))
annotationVideo = VideoFileClip(annotationVideoFn, audio=False)

clips = [annotationVideo, baseVideo]
video = CompositeVideoClip(clips, size=(a.WIDTH, a.HEIGHT))
video = video.set_duration(duration)
if a.QUALITY == "high":
    video.write_videofile(a.OUTPUT_FILE, preset="slow", audio_bitrate="256k", audio_fps=48000, bitrate="19820k")
else:
    video.write_videofile(a.OUTPUT_FILE)
print("Wrote %s to file" % a.OUTPUT_FILE)
intro_text.write_videofile(intro_video_dir)

# overlaying text on the original video
w, h = video_clip.size
watermark_text = TextClip(txt='CFE',
                          fontsize=30,
                          align='East',
                          color='white',
                          size=(w, 30))
watermark_text = watermark_text.set_fps(video_clip.fps)
watermark_text = watermark_text.set_duration(video_clip.duration)
watermark_text = watermark_text.set_position('bottom')

# ordering of clip is important in CompositeVideoClip
cvc = CompositeVideoClip([video_clip, watermark_text], size=video_clip.size)
cvc = cvc.set_duration(video_clip.duration)
cvc = cvc.set_fps(video_clip.fps)

# if above does not work:
# cvc = CompositeVideoClip([watermark_text], size=video_clip.size)
# cvc = cvc.set_duration(video_clip.duration)
# cvc = cvc.set_fps(video_clip.fps)
# overlay_clip = CompositeVideoClip([video_clip, cvc], size=video_clip.size)
# overlay_clip = overlay_clip.set_duration(video_clip.duration)
# overlay_clip = overlay_clip.set_fps(video_clip.fps)

# og_audio = AudioFileClip(og_audio_path)
# overlay_clip = overlay_clip.set_audio(og_audio)

# final_clip = concatenate_videoclips([intro_text, overlay_clip])
示例#5
0
intro_text = intro_text.set_duration(intro_duration)
intro_text = intro_text.set_fps(fps)
intro_text = intro_text.set_pos("center")

# to add audio to your intro:

intro_music = audio_clip.subclip(25, 30)
intro_text = intro_text.set_audio(intro_music)

watermark_size = 50
watermark_text = TextClip(watermark,
                          fontsize=watermark_size,
                          color='black',
                          align='East',
                          size=(w, watermark_size))
watermark_text = watermark_text.set_fps(fps)
watermark_text = watermark_text.set_duration(video_clip.reader.duration)
watermark_text = watermark_text.margin(left=10, right=10, bottom=2, opacity=0)
watermark_text = watermark_text.set_position(("bottom"))

watermarked_clip = CompositeVideoClip([video_clip, watermark_text],
                                      size=video_clip.size)
watermarked_clip = watermarked_clip.set_duration(video_clip.reader.duration)
watermarked_clip = watermarked_clip.set_fps(fps)
watermarked_clip = watermarked_clip.set_audio(final_audio)

final_clip = concatenate_videoclips([intro_text, watermarked_clip])
final_clip.write_videofile(final_video_path,
                           codec='libx264',
                           audio_codec="aac")