全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1176|回复: 5

有没有这样的一个脚本啊

[复制链接]
发表于 2023-5-30 10:10:15 | 显示全部楼层 |阅读模式
放到一个文件夹 直接把文件夹内的影片 自动截缩略图
发表于 2023-5-30 10:10:44 | 显示全部楼层
自己写 什么都有
 楼主| 发表于 2023-5-30 10:12:33 | 显示全部楼层
HOH 发表于 2023-5-30 10:10
自己写 什么都有

大佬给个思路
发表于 2023-5-30 10:21:44 | 显示全部楼层
GPT没有吗

你可以使用Python中的FFmpeg库来实现自动截取视频缩略图。FFmpeg是一个开源的多媒体框架,可以用于处理视频和音频文件。

下面是一个示例代码,演示了如何使用FFmpeg库来自动截取视频文件的缩略图:

  1. import os
  2. import subprocess

  3. def generate_thumbnail(video_path, thumbnail_path, time_offset):
  4.     # 使用FFmpeg命令行工具截取视频缩略图
  5.     cmd = f'ffmpeg -i "{video_path}" -ss {time_offset} -vframes 1 "{thumbnail_path}"'
  6.     subprocess.call(cmd, shell=True)

  7. def generate_thumbnails_from_folder(folder_path, output_folder, time_offset):
  8.     # 遍历文件夹内的视频文件,并生成对应的缩略图
  9.     for file_name in os.listdir(folder_path):
  10.         if file_name.endswith('.mp4') or file_name.endswith('.avi'):
  11.             video_path = os.path.join(folder_path, file_name)
  12.             thumbnail_name = f'{os.path.splitext(file_name)[0]}.jpg'
  13.             thumbnail_path = os.path.join(output_folder, thumbnail_name)
  14.             generate_thumbnail(video_path, thumbnail_path, time_offset)

  15. # 使用示例
  16. input_folder = 'input_folder'  # 输入视频文件所在文件夹路径
  17. output_folder = 'output_folder'  # 生成的缩略图保存的文件夹路径
  18. time_offset = '00:00:05'  # 截取缩略图的时间点,格式为 HH:MM:SS

  19. generate_thumbnails_from_folder(input_folder, output_folder, time_offset)
复制代码


上述代码中,generate_thumbnail函数接收视频文件路径、缩略图保存路径和截取时间点作为参数,使用FFmpeg命令行工具执行截取缩略图的操作。

generate_thumbnails_from_folder函数遍历指定文件夹内的视频文件,并对每个视频文件生成对应的缩略图。你需要将input_folder设置为包含视频文件的文件夹路径,output_folder设置为缩略图保存的文件夹路径,time_offset设置为截取缩略图的时间点,即从视频开始的时间偏移量。

请确保已经安装了FFmpeg,并将其添加到系统的环境变量中,以便能够在命令行中执行FFmpeg命令。
发表于 2023-5-30 10:22:00 | 显示全部楼层
根据视频文件信息自动去豆瓣或者啥地方刮削封面,这个是有现成的工具的。
发表于 2023-5-30 13:50:42 | 显示全部楼层
您可以使用 Python 和 OpenCV 库来自动截取文件夹内所有影片的缩略图。以下是一个示例代码:
  1. import os
  2. import cv2

  3. # 定义要扫描的文件夹路径
  4. folder_path = "/path/to/folder"

  5. # 遍历文件夹内所有影片文件
  6. for filename in os.listdir(folder_path):
  7.     if filename.endswith(".mp4") or filename.endswith(".avi"):
  8.         # 打开影片文件
  9.         cap = cv2.VideoCapture(os.path.join(folder_path, filename))
  10.         # 获取影片总帧数
  11.         total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
  12.         # 每隔一定帧数截取一张缩略图
  13.         interval = total_frames // 10
  14.         for i in range(interval, total_frames, interval):
  15.             # 设置影片帧位置
  16.             cap.set(cv2.CAP_PROP_POS_FRAMES, i)
  17.             # 读取影片帧
  18.             ret, frame = cap.read()
  19.             if ret:
  20.                 # 保存缩略图
  21.                 thumbnail_path = os.path.join(folder_path, f"{filename}_{i}.jpg")
  22.                 cv2.imwrite(thumbnail_path, frame)
  23.         # 关闭影片文件
  24.         cap.release()
复制代码

在这个例子中,我们首先定义要扫描的文件夹路径。然后,我们使用 os.listdir() 函数遍历文件夹内所有影片文件。对于每个影片文件,我们打开它并获取影片总帧数。然后,我们使用循环每隔一定帧数截取一张缩略图,并将它保存到文件夹中。最后,我们关闭影片文件。

请注意,这只是一个示例代码,您可能需要根据自己的需求进行调整。另外,如果您的影片文件很大,可能需要考虑使用多线程或分布式处理来提高处理速度。

希望这能帮助到您!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-23 00:28 , Processed in 0.063461 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表