2024-06-28 15:39:10 发布
网友
据我所知^{}是Python中直接操作ffmpeg的主包
ffmpeg
现在,我想拍摄一段视频,并将其帧以fps格式保存为单独的文件
有很多命令行方法可以做到这一点,例如ffmpeg -i video.mp4 -vf fps=1 img/output%06d.pngdescribed here
ffmpeg -i video.mp4 -vf fps=1 img/output%06d.png
但是我想用Python来做。还有一些解决方案[1][2]使用Python的subprocess调用ffmpegCLI,但对我来说它看起来很脏
subprocess
有没有办法用ffmpeg-python来实现它
ffmpeg-python
您也可以使用openCV来实现这一点
参考代码:
import cv2 video_capture = cv2.VideoCapture("your_video_path") video_capture.set(cv2.CAP_PROP_FPS, <your_desired_fps_here>) saved_frame_name = 0 while video_capture.isOpened(): frame_is_read, frame = video_capture.read() if frame_is_read: cv2.imwrite(f"frame{str(saved_frame_name)}.jpg", frame) saved_frame_name += 1 else: print("Could not read the frame.")
我建议您尝试imageio module,并使用以下代码作为起点:
import imageio reader = imageio.get_reader('imageio:cockatoo.mp4') for frame_number, im in enumerate(reader): # im is numpy array if frame_number % 10 == 0: imageio.imwrite(f'frame_{frame_number}.jpg', im)
以下是我的作品:
ffmpeg .input(url) .filter('fps', fps='1/60') .output('thumbs/test-%d.jpg', start_number=0) .overwrite_output() .run(quiet=True)
您也可以使用openCV来实现这一点
参考代码:
我建议您尝试imageio module,并使用以下代码作为起点:
以下是我的作品:
相关问题 更多 >
编程相关推荐