当前位置: 首页> 娱乐> 影视 > 泰安疫情最新消息_南京制作网站企业_山东建站_网络推广需要多少钱

泰安疫情最新消息_南京制作网站企业_山东建站_网络推广需要多少钱

时间:2025/8/13 13:49:54来源:https://blog.csdn.net/weixin_42771529/article/details/144430973 浏览次数:0次
泰安疫情最新消息_南京制作网站企业_山东建站_网络推广需要多少钱

上一节中,实现了先生成一个固定背景的与音频长度一致的视频,然后插入字幕。再合并成一个视频的方法。

但是:这样有点单了,所以:

1.根据字幕的长度先生成视频片断

2.在片段上加上字幕。

3.合并所有片断,成为一个新的视频。

4.在新的视频上添加上音频。再次合成一个新的视频,即最后的视频。

可用代码1

from moviepy import VideoFileClip, AudioFileClip, TextClip, CompositeVideoClip, ImageClip
import cv2
import numpy as np
import random
import os
import warnings# 忽略特定的 UserWarning
# warnings.filterwarnings("ignore", category=UserWarning, message="In file .*\.mp4, .* bytes wanted but 0 bytes read at frame index .* \(out of a total .* frames\), at time .* sec. Using the last valid frame instead.")def parse_time(time_str):""" 解析 SRT 时间格式 """hours, minutes, seconds = time_str.split(':')seconds, milliseconds = seconds.split(',')return float(hours) * 3600 + float(minutes) * 60 + float(seconds) + float(milliseconds) / 1000def create_video(audio_path, subtitle_path, video_path, subtitle_position='center', use_temp_files=False):# 创建一个灰色背景的视频width, height = 1920, 1080  # 横屏视频分辨率fps = 24  # 视频帧率duration = AudioFileClip(audio_path).duration  # 视频时长与音频相同# 加载音频audio_clip = AudioFileClip(audio_path)# 读取字幕文件with open(subtitle_path, 'r', encoding='utf-8') as file:subtitles = file.readlines()# 处理字幕video_clips = []temp_files = []  # 用于存储临时文件路径for i in range(0, len(subtitles), 3):  # 4代表字幕文件中每一块所占行数index = subtitles[i].strip()time_range = subtitles[i + 1].strip().split(' --> ')start_time = time_range[0]end_time = time_range[1]text = subtitles[i + 2].strip()# 计算片段的持续时间start_seconds = parse_time(start_time)end_seconds = parse_time(end_time)clip_duration = end_seconds - start_seconds# 生成随机背景颜色random_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))frame = np.zeros((height, width, 3), dtype=np.uint8)frame[:, :] = random_color# 创建视频片段fourcc = cv2.VideoWriter_fourcc(*'
关键字:泰安疫情最新消息_南京制作网站企业_山东建站_网络推广需要多少钱

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: