工具类说明 1. 图像视频转换 1.1 视频输出gif from moviepy.editor import VideoFileClip# 设置输入视频文件路径和输出GIF文件路径input_video = 'video.avi'outpu
from moviepy.editor import VideoFileClip# 设置输入视频文件路径和输出GIF文件路径input_video = 'video.avi'output_gif = 'output.gif'# 读取视频文件video = VideoFileClip(input_video)# 将视频保存为GIF文件video.write_gif(output_gif)
import cv2import osdef images2video( input_folder = 'demo', output_file = 'video.avi'): # 获取图像文件的列表 image_files = os.listdir(input_folder) # 将图像文件名列表按照数字排序 image_files.sort(key=lambda 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(f"Error reading frame {i}: {image_file}") continue frame = cv2.resize(frame, (640, 480)) # 可以根据需要调整帧大小 out.write(frame) if i % 100 == 0: # 每100帧输出一次进度信息 print(f"Processed {i + 1}/{num_frames} frames") # 完成视频写入并释放资源 out.release()
FFmpeg 的官方网站(https://ffmpeg.org/)上找到更详细的安装文档和指南。
sudo apt-get install ffmpeg
Homebrew:如果你使用 Homebrew 包管理器,可以使用以下命令安装 FFmpeg
brew install ffmpeg
MacPorts:如果你使用 MacPorts 包管理器,可以使用以下命令安装 FFmpeg
sudo port install ffmpeg
手动编译:你也可以从 FFmpeg 的官方网站下载源代码,并按照官方提供的编译指南进行手动编译安装。
FFmpeg 是一个功能强大的多媒体处理工具,提供了许多常用的命令来处理音频和视频文件。以下是一些常用的 FFmpeg 命令示例:
ffmpeg -i input.mp4 output.avi
ffmpeg -i input.mp3 output.wav
ffmpeg -i input.mp4 -s 1280x720 output.mp4
ffmpeg -i input.mp4 -r 30 output.mp4
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 output.mp4
ffmpeg -i input.mp4 -vn output.mp3
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a copy output.mp4
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
ffmpeg -i input.mp3 -c:a libopus output.opus
'''使用 setpts=PTS-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', f'select=between(n\,{start_frame}\,{end_frame}),setpts=PTS-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)
来源地址:https://blog.csdn.net/weixin_42917352/article/details/132553669
--结束END--
本文标题: 视频行为分析——视频图像转换与ffmpeg相关操作
本文链接: https://www.lsjlt.com/news/382551.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0