Spaces:
Runtime error
Runtime error
File size: 1,986 Bytes
0a3c439 bf69b71 0a3c439 bf69b71 0a3c439 bf69b71 d51a9a8 bf69b71 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# Import required libraries
import streamlit as st
import cv2
import numpy as np
import tempfile
import base64
# Streamlit app title
st.title("Video Interpolation App 🎥")
# Function to read video and return frames
def read_video(video_path):
cap = cv2.VideoCapture(video_path)
frames = []
while True:
ret, frame = cap.read()
if not ret:
break
frames.append(frame)
cap.release()
return frames
# Function to interpolate between two frames
def interpolate_frames(frame1, frame2, alpha):
return cv2.addWeighted(frame1, 1 - alpha, frame2, alpha, 0)
# Function to convert video file to base64
def get_video_base64(video_path):
with open(video_path, "rb") as file:
video_base64 = base64.b64encode(file.read()).decode()
return video_base64
# Upload videos
uploaded_files = st.file_uploader("Upload Video Files", type=["mp4"], accept_multiple_files=True)
if uploaded_files:
video_paths = []
for file in uploaded_files:
tfile = tempfile.NamedTemporaryFile(delete=False)
tfile.write(file.read())
video_paths.append(tfile.name)
st.write("Uploaded video files:", video_paths)
# Read videos and get frames
all_frames = []
for path in video_paths:
frames = read_video(path)
all_frames.append(frames)
# Placeholder for future functionality
st.write("Interpolation will be performed here.")
# Compile frames into new video (placeholder)
st.write("The new video will be compiled here.")
# Assume output_video_path contains the path to the compiled video
output_video_path = "output_video.mp4"
# Provide download link for the video
video_base64 = get_video_base64(output_video_path)
st.markdown(f'### Download Output Video 📥')
href = f'<a href="data:video/mp4;base64,{video_base64}" download="output_video.mp4">Click here to download the video</a>'
st.markdown(href, unsafe_allow_html=True)
|