确定网站主题然后规划网站建设,WordPress去除官网链接,网站关键词优化外包,中山网站建设电话安装
opencv
pip install opencv-pythonFFmpeg
1.下载 FFmpeg
访问FFmpeg官方网站。选择 “Windows builds from gyan.dev” 链接#xff0c;这会带您到一个包含最新版本 FFmpeg Windows 构建的页面。选择一个适合您系统的版本#xff08;例如#xff0c;32位或64位这会带您到一个包含最新版本 FFmpeg Windows 构建的页面。选择一个适合您系统的版本例如32位或64位并下载 ZIP 文件。
2.解压文件
将下载的 ZIP 文件解压到选择的文件夹中。
3.添加 FFmpeg 到您的环境变量
打开控制面板 - 系统和安全 - 系统 - 高级系统设置 - 环境变量。在 “系统变量” 部分找到并选择变量 “Path”然后点击 “编辑”。点击 “新建” 并添加 FFmpeg bin 目录的路径这是您之前解压的文件夹中的 bin 文件夹。点击 “确定” 保存更改。
4.验证安装
打开命令提示符CMD并输入 ffmpeg -version。如果安装成功它将显示 FFmpeg 的版本信息。
视频嵌入
ffmpeg
ffmpeg -i pressure_ratate.avi -i line_chat_rotate.avi -filter_complex [1:v]scaleiw*0.28:ih*0.35[second_resized];[0:v][second_resized]overlaymain_w-overlay_w:main_h-overlay_h -codec:a copy rotate.aviffmpeg: 这是调用 ffmpeg 工具的命令。ffmpeg 是一个非常强大的多媒体处理工具用于处理视频和音频文件。-i pressure_ratate.avi: 这个参数 -i 用于指定输入文件这里第一个输入文件是 pressure_ratate.avi。-i line_chat_rotate.avi: 这里使用第二个 -i 参数来指定第二个输入文件 line_chat_rotate.avi。-filter_complex: 这个参数用于应用复杂的过滤器图。在这种情况下它用于将两个视频合并为一个。[1:v]scaleiw0.28:ih0.35[second_resized];: 这部分是过滤器图的一个子部分。[1:v] 指的是第二个输入文件line_chat_rotate.avi的视频流。scaleiw0.28:ih0.35 是缩放过滤器用于将视频的宽度和高度分别缩放到原始尺寸的 28% 和 35%。缩放后的视频流被标记为 [second_resized]。[0:v][second_resized]overlaymain_w-overlay_w:main_h-overlay_h: 这是过滤器图的另一个子部分。它使用了 overlay 过滤器来将 [second_resized]即缩放后的第二个视频叠加到第一个视频流pressure_ratate.avi上。叠加位置设置为 main_w-overlay_w:main_h-overlay_h这意味着第二个视频将被放置在第一个视频的右下角-codec:a copy: 这个参数指定要复制音频流而不进行重新编码。rotate.avi: 这是输出文件的名称。
opencv
import cv2
import os# 路径设置
line_chat_video_path rvedio1.avi
pressure_video_path rvedio2.avi
output_video_path routput.avi# 读取视频
line_chat_cap cv2.VideoCapture(line_chat_video_path)
pressure_cap cv2.VideoCapture(pressure_video_path)# 获取pressure视频的属性
fps pressure_cap.get(cv2.CAP_PROP_FPS)
width int(pressure_cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height int(pressure_cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 创建视频写入器
fourcc cv2.VideoWriter_fourcc(*XVID)
out cv2.VideoWriter(output_video_path, fourcc, fps, (width, height))# 计算叠加视频的大小和位置
scale_factor 0.4 # 可以根据需要调整缩放因子
small_width int(width * scale_factor)
small_height int(height * scale_factor)
pos_x width - small_width
pos_y height - small_heightwhile pressure_cap.isOpened() and line_chat_cap.isOpened():ret1, frame1 pressure_cap.read()ret2, frame2 line_chat_cap.read()if not ret1 or not ret2:break# 缩放 line_chat 视频的帧frame2 cv2.resize(frame2, (small_width, small_height))# 将 line_chat 的帧叠加到 pressure 的帧frame1[pos_y:pos_ysmall_height, pos_x:pos_xsmall_width] frame2# 写入帧到输出视频out.write(frame1)# 释放资源
pressure_cap.release()
line_chat_cap.release()
out.release()图片合成视频
import cv2
import osimages []path r./images
for i in range(201):s image{t}_0.png.format(ti)images.append(path / s)video_name rvedio.avi# 设定帧率
fps 2# 读取第一张图片确定视频分辨率
frame cv2.imread(images[0])
height, width, layers frame.shape# 创建视频写入器
fourcc cv2.VideoWriter_fourcc(*XVID)
video cv2.VideoWriter(video_name, fourcc, fps, (width, height))# 将图片写入视频
for image in images:video.write(cv2.flip(cv2.imread(image),1))# 释放视频写入器
video.release()