用python 写一个将指定路径下的所有视频,按照原始帧率拆分成多个时长为60秒的视频的代码
时间: 2024-05-06 16:18:44 浏览: 13
可以使用Python中的OpenCV库来处理视频文件,以下是一个示例代码:
```python
import os
import cv2
def split_video(video_path, output_dir):
# 读取视频文件
video = cv2.VideoCapture(video_path)
# 获取原始帧率
fps = video.get(cv2.CAP_PROP_FPS)
# 计算每60秒应该有多少帧
frame_per_split = int(fps * 60)
# 初始化计数器和输出文件名
count = 0
output_name = os.path.splitext(os.path.basename(video_path))[0] + "_part{}.mp4"
while True:
# 读取一帧
ret, frame = video.read()
if not ret:
break
# 每读取到指定数量的帧就输出为一个新的视频文件
if count % frame_per_split == 0:
if count > 0:
writer.release()
output_path = os.path.join(output_dir, output_name.format(count // frame_per_split + 1))
writer = cv2.VideoWriter(output_path, cv2.VideoWriter_fourcc(*'mp4v'), fps, (frame.shape[1], frame.shape[0]))
# 写入一帧
writer.write(frame)
count += 1
# 释放资源
video.release()
writer.release()
if __name__ == "__main__":
video_path = "path/to/video.mp4"
output_dir = "path/to/output"
split_video(video_path, output_dir)
```
在这个示例代码中,我们首先使用`cv2.VideoCapture`打开视频文件,然后通过`video.get(cv2.CAP_PROP_FPS)`获取原始帧率。接着计算出每60秒应该有多少帧,然后在循环中逐帧读取视频文件,并将每`frame_per_split`帧输出为一个新的视频文件。最后释放资源即可。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)