Spaces:
Running
Running
import streamlit as st | |
import os | |
import subprocess | |
# Define directories for uploads and processed files | |
UPLOAD_DIR = 'uploads' | |
PROCESSED_DIR = 'processed' | |
# Create the directories if they don't exist | |
if not os.path.exists(UPLOAD_DIR): | |
os.makedirs(UPLOAD_DIR) | |
if not os.path.exists(PROCESSED_DIR): | |
os.makedirs(PROCESSED_DIR) | |
st.title('FFmpeg Command Executor') | |
# File uploader | |
uploaded_file = st.file_uploader("Choose a file") | |
if uploaded_file is not None: | |
# Save the uploaded file | |
file_path = os.path.join(UPLOAD_DIR, uploaded_file.name) | |
with open(file_path, 'wb') as f: | |
f.write(uploaded_file.getbuffer()) | |
st.success('File uploaded successfully!') | |
# Input for ffmpeg command | |
command = st.text_area('Enter FFmpeg command', value=f'ffmpeg -i {file_path} -vf scale=1280:720 {os.path.join(PROCESSED_DIR, "output.mp4")}') | |
if st.button('Run Command'): | |
# Execute the FFmpeg command | |
try: | |
subprocess.run(command, shell=True, check=True) | |
st.success('Command executed successfully!') | |
# Display the processed video | |
output_file_path = os.path.join(PROCESSED_DIR, 'output.mp4') | |
st.video(output_file_path) # Display video in Streamlit | |
except subprocess.CalledProcessError as e: | |
st.error(f'Error executing command: {e}') |