python代码:实现一个视频选择的脚本。有两个文件夹,在一个文件夹下挑选合适的视频,视频都是.mp4格式,运行代码后遍历播放文件夹下视频,视频下方有按键选择功能,按下按键这个视频会复制到另一个文件夹内。用opencv库实现。
时间: 2024-10-20 12:09:27 浏览: 33
下面是一个基本的Python脚本,使用OpenCV库实现视频选择并复制的功能。这里假设我们有两个文件夹:一个存放待选视频(video_source_dir),另一个存放已选视频(selected_videos_dir)。我们将通过键盘输入控制播放和复制视频。
首先,确保安装了必要的库:
```bash
pip install opencv-python numpy
```
接下来是Python代码:
```python
import cv2
import os
import numpy as np
# 定义源目录和目标目录
video_source_dir = 'path/to/video/source/directory'
selected_videos_dir = 'path/to/selected/videos/directory'
# 初始化视频列表和视频索引
video_files = [f for f in os.listdir(video_source_dir) if f.endswith('.mp4')]
current_index = 0
video cap = None
def play_and_select_video(index):
global current_index, video cap
if index < len(video_files):
cap = cv2.VideoCapture(os.path.join(video_source_dir, video_files[index]))
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
cv2.imshow('Video', frame)
key = cv2.waitKey(1) & 0xFF
if key == ord('c'): # 按"C"键复制视频
copy_video(index)
break
elif key == ord('q'): # 按"Q"键退出
cap.release()
cv2.destroyAllWindows()
return
else:
print("No more videos to play.")
def copy_video(index):
source_path = os.path.join(video_source_dir, video_files[index])
target_path = os.path.join(selected_videos_dir, video_files[index])
if not os.path.exists(target_path):
os.makedirs(os.path.dirname(target_path), exist_ok=True)
shutil.copy(source_path, target_path)
print(f"Video '{video_files[index]}' copied to selected folder.")
while True:
play_and_select_video(current_index)
current_index = (current_index + 1) % len(video_files) # 循环播放,防止超过视频数
cv2.destroyAllWindows()
```
在这个脚本中,用户通过按"C"键将当前播放的视频复制到指定的目标文件夹,按"Q"键退出程序。注意替换`video_source_dir`和`selected_videos_dir`为你实际的文件路径。
阅读全文