|
import os
|
|
import subprocess
|
|
|
|
def generate_thumbnails(video_folder, thumbnail_folder, timestamp="00:00:05"):
|
|
if not os.path.exists(thumbnail_folder):
|
|
os.makedirs(thumbnail_folder)
|
|
|
|
for video_file in os.listdir(video_folder):
|
|
video_path = os.path.join(video_folder, video_file)
|
|
|
|
if os.path.isfile(video_path) and video_file.lower().endswith((".mp4", ".mkv", ".avi", ".mov", ".flv")):
|
|
thumbnail_name = os.path.splitext(video_file)[0] + ".png"
|
|
thumbnail_path = os.path.join(thumbnail_folder, thumbnail_name)
|
|
|
|
command = [
|
|
"ffmpeg", "-i", video_path,
|
|
"-ss", timestamp, "-vframes", "1", "-q:v", "2",
|
|
thumbnail_path
|
|
]
|
|
|
|
try:
|
|
subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
print(f"Thumbnail generated: {thumbnail_path}")
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"Error generating thumbnail for {video_file}: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
video_folder = "sample_video"
|
|
thumbnail_folder = "thumbnails"
|
|
generate_thumbnails(video_folder, thumbnail_folder) |