MoviePy常用操作
import random
import time

from moviepy.audio.AudioClip import CompositeAudioClip
from moviepy.config import change_settings
from moviepy.editor import VideoFileClip, AudioFileClip, clips_array
from moviepy.video.VideoClip import TextClip, ColorClip
from moviepy.video.compositing.CompositeVideoClip import CompositeVideoClip

# change_settings({"IMAGEMAGICK_BINARY": r"D:\Program Files\ImageMagick-7.1.1-Q16-HDRI\magick.exe"})

# 加载网络视频
video_url = ""
video_clip = VideoFileClip(video_url, audio=True)
start = random.randint(0, int(video_clip.duration - 15))
cropped_video = video_clip.subclip(start, start + 15)
cropped_video.write_videofile('qiniu_video_test.mp4', codec="libx264", audio_codec="aac", threads=6)

# 加载视频和背景音乐
video_path = r'./video_test.mp4'  # 输入视频文件路径
bgm_path = r'./xuanni.m4a'  # 背景音乐文件路径

video_clip = VideoFileClip(video_path, audio=True)
bgm_clip = AudioFileClip(bgm_path)

# # video_clip裁剪一半
# video_clip = video_clip.subclip(0, video_clip.duration / 2)
# video_clip.write_videofile('video_test_half.mp4', codec="libx264", audio_codec="aac", threads=6)
# exit()

# random随机裁剪15s片段
start = random.randint(0, int(video_clip.duration - 15))
cropped_video = video_clip.subclip(start, start + 15)
# cropped_video = video_clip.subclip(10, 30)

# 裁剪背景音乐,使其与视频长度匹配,并调整音量
# 同样使用random随机裁剪
bgm_clip = bgm_clip.subclip(random.randint(0, int(bgm_clip.duration - 15)), random.randint(15, int(bgm_clip.duration)))
bgm_clip = bgm_clip.volumex(2)  # 调整音量

# 将背景音乐与原视频的音频混合在一起
video_with_bgm = cropped_video.set_audio(CompositeAudioClip([cropped_video.audio, bgm_clip]))

# 设置混合后音频的持续时间,以确保与视频持续时间相匹配
video_with_bgm = video_with_bgm.set_duration(cropped_video.duration)

# 调整视频大小为竖屏
target_width = 1080
target_height = 1920

# 创建一个背景视频,大小为1080x1920,创建黑色背景
background_color = (0, 0, 0)
background_clip = ColorClip(size=(target_width, target_height), color=background_color)

# 将视频放置在背景视频中间
video_with_bgm = video_with_bgm.set_position('center')

# 将视频和背景视频合并
video_with_background = CompositeVideoClip([background_clip, video_with_bgm])
video_with_background.duration = video_with_bgm.duration

# 创建字幕
text = "这是我的字幕"  # 要添加的字幕文本
fontsize = 100  # 字幕字体大小
font_color = 'white'  # 字幕字体颜色
# bg_color = 'black'  # 字幕背景颜色(可选)
duration = video_with_background.duration  # 字幕持续时间,与视频长度相同

# 创建 TextClip 对象来生成字幕
subtitle = TextClip(text, fontsize=fontsize, color=font_color, size=video_clip.size, font=r"../font/OPPOSans-R.ttf")
subtitle = subtitle.set_duration(duration)
# 计算视频长宽
w, h = video_clip.size
# 设置字幕的位置 为视频中间偏上
# subtitle = subtitle.set_position(((w - subtitle.w) / 2, (h - subtitle.h) / 4))
subtitle = subtitle.set_position(("center", "top"))  # 设置字幕的位置
# subtitle = subtitle.set_position((45, 150))  # 设置字幕的位置

# 将字幕添加到视频
video_with_subtitle = CompositeVideoClip([video_with_background, subtitle])
video_with_subtitle.duration = video_with_background.duration

# 导出最终视频
output_path = 'output_video.mp4'  # 输出视频文件路径
video_with_subtitle.write_videofile(output_path, codec="libx264", audio_codec="aac", threads=6)
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇