Spaces:
Sleeping
Sleeping
import streamlit as st | |
from utils import * | |
st.set_page_config( | |
page_title="Number to Video", | |
page_icon="🎥", | |
initial_sidebar_state="auto", | |
) | |
# Input number | |
number = st.text_input("Enter a number between 1 and 9999999", "24") | |
number = int(number) | |
if number: | |
col1, col2 = st.columns(2) | |
with col1: | |
with st.container(border=True): | |
st.subheader("Settings") | |
st.divider() | |
# Generate clip sequence based on the number | |
clips = generate_clip_sequence(number) | |
if clips: | |
st.write("Generated Clips Sequence:") | |
for i, clip in enumerate(clips): | |
st.write(f"Clip {i + 1}: {clip}") | |
submit = st.button("Create Video", use_container_width=True) | |
if clips: | |
with st.sidebar: | |
st.title("Advanced Settings") | |
trim_settings = [] | |
for i, clip in enumerate(clips): | |
with st.container(border=True): | |
st.write(f"Adjust settings for {clip}:") | |
length = get_clip_duration(clip) | |
default_trim_start = 0.10 | |
default_trim_end = length - 0.10 | |
# trim_bounds = st.slider( | |
# f"Trim bounds for {clip}", | |
# 0.0, length, | |
# (default_trim_start, default_trim_end), | |
# 0.01, | |
# key=f"bounds_{i}" | |
# ) | |
# trim_bounds = tuple([round(b, 2) for b in trim_bounds]) | |
# print(trim_bounds) | |
# trim_settings.append(trim_bounds) | |
trim_start = st.slider(f"Trim start for {clip}", 0.0, length, 0.00, 0.01, key=f"start_{i}") | |
trim_end = st.slider(f"Trim end for {clip}", 0.0, length, 0.00, 0.01, key=f"end_{i}") | |
trim_settings.append((trim_start, trim_end)) | |
print(trim_settings) | |
with col2: | |
with st.container(border=True): | |
st.subheader("Output") | |
output_file = "output.mp4" | |
if submit: | |
pass | |
# Create the video with individual clip settings | |
create_advanced_video(number, trim_settings, output_file) | |
st.video(output_file, autoplay=True) | |