织梦摄影网站模板,搭建单位网站,wordpress 中文论坛插件,钉钉企业主页本章使用 ffmpeg 实现观影中经常会用到的功能#xff0c;截图。 以下给出两种方式。 课程需具备的基础能力#xff1a;Python 1. 使用 subprocess 调用 FFmpeg 命令
import subprocess
def extract_frame(video_path, output_image_path, timestamp00:00:05)截图。 以下给出两种方式。 课程需具备的基础能力Python 1. 使用 subprocess 调用 FFmpeg 命令
import subprocess
def extract_frame(video_path, output_image_path, timestamp00:00:05)从视频中截取指定时间点的帧作为图片:param video_path: 输入视频文件路径:param output_image_path: 输出图片文件路径:param timestamp: 截取时间点格式为 HH:MM:SS, 默认为 00:00:05try:# 调用 ffmpeg 命令command [ffmpeg,-i, video_path, # 输入视频文件-ss, timestamp, # 截取的时间点-vframes, 1, # 截取一帧output_image_path, # 输出图片文件路径-y]suprocess.run(command, checkTrue)print(f成功截取帧: {output_image_path})except subprocess.CalledProcessError as e:print(f错误{e})// 使用
video_file example.mp4
output_image screenshot.jpg
timestamp 00:01:00 # 截取 1 分钟时的帧
extract_frame(video_file, output_image, timestamp)2. 使用 ffmpeg-python 库
示例代码
import ffmpegdef extract_frame_ffmpeg(video_path, output_image_path, timestamp5.0):使用 ffmpeg-python 从视频中截取指定时间点的帧并保存为图片。:param video_path: 输入视频文件路径:param output_image_path: 输出图片文件路径:param timestamp: 截取的时间点单位秒try:# 使用 ffmpeg-python 提取帧ffmpeg.input(video_path, sstimestamp).output(output_image_path, vframes1).run(overwrite_outputTrue)print(f成功截取帧并保存到 {output_image_path})except ffmpeg.Error as e:print(f错误: {e.stderr.decode()})# 使用示例
video_file example.mp4
output_image screenshot2.jpg
timestamp 60.0 # 截取 60 秒时的帧
extract_frame_ffmpeg(video_file, output_image, timestamp)解释 ffmpeg.input(video_path, sstimestamp) input() 函数用来指定输入视频路径。ss 参数指定截取的时间戳可以是秒数例如 60.0或者 HH:MM:SS 格式。 output(output_image_path, vframes1) output() 用于指定输出文件路径。vframes1 表示我们只提取视频中的一帧。 run(overwrite_outputTrue) run() 执行 FFmpeg 命令overwrite_outputTrue 表示如果目标文件已存在会被覆盖。