File size: 1,631 Bytes
0a3c439
 
00b7f6e
0a3c439
bf69b71
0a3c439
 
1dc1e50
0a3c439
bf69b71
 
 
 
 
 
13d5e58
 
 
0a3c439
13d5e58
0a3c439
 
00b7f6e
0a3c439
 
00b7f6e
0a3c439
 
00b7f6e
 
0a3c439
00b7f6e
0a3c439
00b7f6e
 
13d5e58
00b7f6e
 
 
0a3c439
bf69b71
00b7f6e
bf69b71
13d5e58
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
# Import required libraries
import streamlit as st
from moviepy.editor import VideoFileClip, concatenate_videoclips
import tempfile
import base64

# Streamlit app title
st.title("Video Concatenator App πŸŽ₯")

# 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

# Textbox for user to specify output video name
output_video_name = st.text_input("Enter the name for the output video:", "Output_Video.mp4")

# Upload videos
uploaded_files = st.file_uploader("Upload Video Files πŸ“€", type=["mp4"], accept_multiple_files=True)

if uploaded_files:
    video_clips = []
    video_paths = []
    for file in uploaded_files:
        tfile = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4") 
        tfile.write(file.read())
        video_paths.append(tfile.name)
        clip = VideoFileClip(tfile.name)
        video_clips.append(clip)

    st.write("Uploaded video files: πŸ“‚", video_paths)

    # Concatenate video clips
    final_video = concatenate_videoclips(video_clips)

    # Save the result
    final_video_path = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4").name
    final_video.write_videofile(final_video_path, codec="libx264")

    # Provide download link for the video
    video_base64 = get_video_base64(final_video_path)
    st.markdown(f'### Download Output Video πŸ“₯')
    href = f'<a href="data:video/mp4;base64,{video_base64}" download="{output_video_name}">Click here to download the video</a>'
    st.markdown(href, unsafe_allow_html=True)