728x90
반응형
SMALL
1. 아래와 같이 코딩합니다.
import google.generativeai as genai
import cv2
import os
from PIL import Image
import numpy as np
import time
from config import *
##############################
## 동영상 기반 질의 응답 수행 ##
##############################
# API 키 설정
genai.configure(api_key=API_KEY)
# 모델 로드
model = genai.GenerativeModel("gemini-2.0-flash-exp")
def extract_frames(video_path, interval=1):
frames = []
vidcap = cv2.VideoCapture(video_path)
success, image = vidcap.read()
count = 0
while success:
if count % (30 * interval) == 0: # 1초마다 프레임 추출 (30fps 가정)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
pil_image = Image.fromarray(image_rgb)
frames.append(pil_image)
success, image = vidcap.read()
count += 1
return frames
def analyze_video(video_path):
video_file = genai.upload_file(video_path)
time.sleep(30) # 동영상 업로드되는 시간을 주어야 에러가 안남
prompt = """
이 비디오의 주요 장면, 등장인물, 핵심 메시지를 분석해주세요. 다음 형식으로 요약해주세요:
1. 주요 장면:
2. 등장인물:
3. 핵심 메시지:
4. 전체 요약:
"""
response = model.generate_content([prompt, video_file])
return response.text
# 비디오 파일 경로
video_path = 'a.mp4'
# 비디오 분석 실행
analysis = analyze_video(video_path)
print(analysis)
2.아래와 같이 응답결과를 얻을 수 있습니다.
3.참고로 동영상은 아래와 같습니다.
4.동영상 업로드 후 업로드된 파일 경로 확인하는 방법은 아래와 같습니다.
import google.generativeai as genai
from config import *
genai.configure(api_key=API_KEY)
# Choose a Gemini model.
model = genai.GenerativeModel(model_name="gemini-1.5-pro")
# Upload the video and print a confirmation.
video_file_name = "a.mp4"
print(f"Uploading file...")
video_file = genai.upload_file(path=video_file_name)
print(f"Completed upload: {video_file.uri}")
5. 실행결과는 아래와 같습니다.
728x90
반응형
LIST
'퀵포스팅 > 제미나이2.0 ai api로 할 수 있는 것들' 카테고리의 다른 글
제미나이 2.0 ai api로 할 수 있는 것들 - 5.실시간 번역 (0) | 2024.12.22 |
---|---|
제미나이 2.0 ai api로 할 수 있는 것들 - 4.여행계획 짜기 (3) | 2024.12.22 |
제미나이 2.0 ai api로 할 수 있는 것들 - 2.이미지에 대한 설명 얻기 (0) | 2024.12.22 |
제미나이 2.0 ai api로 할 수 있는 것들 - 1.기본 API 사용법 (0) | 2024.12.22 |
제미나이 2.0 ai api로 할 수 있는 것들 - 0.소개, 특징 (0) | 2024.12.22 |