网页网站,iview可以做门户网站吗,私人订制网站建设,关于学校网站建设申请报告工具类说明
1. 图像视频转换
1.1 视频输出gif
from moviepy.editor import VideoFileClip
# 设置输入视频文件路径和输出GIF文件路径
input_video video.avi
output_gif output.gif
# 读取视频文件
video VideoFileClip(input_video)
# 将视频保存为GIF文件
video.write_…工具类说明
1. 图像视频转换
1.1 视频输出gif
from moviepy.editor import VideoFileClip
# 设置输入视频文件路径和输出GIF文件路径
input_video video.avi
output_gif output.gif
# 读取视频文件
video VideoFileClip(input_video)
# 将视频保存为GIF文件
video.write_gif(output_gif)1.2 将文件夹下图片转视频
import cv2
import os
def images2video( input_folder demo, output_file video.avi):# 获取图像文件的列表image_files os.listdir(input_folder)# 将图像文件名列表按照数字排序image_files.sort(keylambda x: int(x.split(.)[0]))# 获取图像文件的数量num_frames len(image_files)# 创建一个空的视频流fourcc cv2.VideoWriter_fourcc(*XVID) # 设置视频编解码器out cv2.VideoWriter(output_file, fourcc, 30.0, (640, 480))# 逐个读取并写入每个图像帧for i, image_file in enumerate(image_files):frame cv2.imread(os.path.join(input_folder, image_file))if frame is None:print(fError reading frame {i}: {image_file})continueframe cv2.resize(frame, (640, 480)) # 可以根据需要调整帧大小out.write(frame)if i % 100 0: # 每100帧输出一次进度信息print(fProcessed {i 1}/{num_frames} frames)# 完成视频写入并释放资源out.release()2. ffmpeg视频音频剪辑
2.1 ffmpeg安装
FFmpeg 的官方网站https://ffmpeg.org/上找到更详细的安装文档和指南。
2.1.1 linux 安装
编译安装如果你需要更新或自定义的 FFmpeg 版本你可以从源代码编译安装。你可以从 FFmpeg 的官方网站下载源代码并按照官方提供的编译指南进行安装。使用包管理器安装大多数 Linux 发行版的软件仓库中都包含 FFmpeg。你可以使用包管理器如apt、yum、dnf等来安装。例如在 Ubuntu 上可以运行以下命令 sudo apt-get install ffmpeg2.1.2 windows 安装
预编译二进制文件你可以从 FFmpeg 的官方网站下载预编译的 Windows 版本。官方提供了静态和共享库版本的二进制文件你可以根据需要选择适合的版本。第三方安装程序也有一些第三方安装程序如Gyan Dev和BtbN提供了 Windows 版本的 FFmpeg你可以从它们的网站下载并按照说明进行安装。备注需要将bin目录下设置到windows环境变量
2.1.3 macos 安装 Homebrew如果你使用 Homebrew 包管理器可以使用以下命令安装 FFmpeg brew install ffmpegMacPorts如果你使用 MacPorts 包管理器可以使用以下命令安装 FFmpeg sudo port install ffmpeg手动编译你也可以从 FFmpeg 的官方网站下载源代码并按照官方提供的编译指南进行手动编译安装。
2.2 常用命令
FFmpeg 是一个功能强大的多媒体处理工具提供了许多常用的命令来处理音频和视频文件。以下是一些常用的 FFmpeg 命令示例
2.2.1 转换视频格式
ffmpeg -i input.mp4 output.avi2.2.2 转换音频格式
ffmpeg -i input.mp3 output.wav2.2.3 调整视频分辨率
ffmpeg -i input.mp4 -s 1280x720 output.mp42.2.4 调整视频帧率
ffmpeg -i input.mp4 -r 30 output.mp42.2.5 裁剪视频
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 output.mp42.2.6 提取音频
ffmpeg -i input.mp4 -vn output.mp32.2.7 合并视频和音频
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a copy output.mp42.2.8 添加水印
ffmpeg -i input.mp4 -i watermark.png -filter_complex overlay10:10 output.mp4 2.2.9 转换视频编码
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp42.2.10 转换音频编码
ffmpeg -i input.mp3 -c:a libopus output.opus2.3 实用工具
2.3.1 按照帧裁剪视频 使用 setptsPTS-STARTPTS 可以将视频的第一帧的时间戳设置为0这样后续帧的时间戳就是相对于第一帧的时间差。这在一些需要对视频进行时间戳调整的场景中非常有用例如剪辑视频或重新排序视频帧。
def ffmpeg_cut_video_by_frames(input_file, output_file, start_frame, end_frame):# 构建 FFmpeg 命令# 示例用法input_file demo.mp4 # 输入视频文件路径output_file output2.mp4 # 输出视频文件路径start_frame 25 # 起始帧数end_frame 120 # 结束帧数command [ffmpeg,-i, input_file,-vf, fselectbetween(n\,{start_frame}\,{end_frame}),setptsPTS-STARTPTS,output_file,]if os.path.exists(output_file):os.remove(output_file)# 执行 FFmpeg 命令flag subprocess.run(command)return flagif __name__ __main__:# 示例用法input_file demo.mp4 # 输入视频文件路径output_file output2.mp4 # 输出视频文件路径start_frame 25 # 起始帧数end_frame 120 # 结束帧数ffmpeg_cut_video_by_frames(input_file, output_file, start_frame, end_frame)