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)