verbisense / src /video_processor.py
HARISH20205's picture
first
c8c7a9e
raw
history blame contribute delete
805 Bytes
import ffmpeg
import numpy as np
from src.audio_processor import process_audio_data
import os
def process_video_file(file_path: str):
# Use ffmpeg to extract audio from the video file
try:
out, _ = (
ffmpeg
.input(file_path)
.output('pipe:1', format='f32le', acodec='pcm_f32le', ac=1, ar='16k')
.run(capture_stdout=True, capture_stderr=True)
)
except ffmpeg.Error as e:
raise RuntimeError(f"Failed to extract audio from video: {e.stderr.decode()}") from e
# Convert the audio to the format Whisper expects
audio = np.frombuffer(out, np.float32).flatten()
# Pass file name to audio processor
file_name = os.path.basename(file_path)
result = process_audio_data(audio, file_name)
return result