File size: 2,033 Bytes
0da3980 888209d 8fec71a 0da3980 888209d 8fec71a 41acf4c 8fec71a 888209d 8fec71a 888209d 41acf4c 8fec71a 41acf4c |
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 streamlit as st
import os
from moviepy.editor import VideoFileClip
st.title("Video Playback and Duplication")
# Функция для конвертации видео в формат MP4 с кодеком H.264
def convert_to_mp4(input_path, output_path):
try:
video_clip = VideoFileClip(input_path)
video_clip.write_videofile(output_path, codec="libx264", audio_codec="aac")
return True
except Exception as e:
st.error(f"Error converting video: {e}")
return False
# Загрузка видеофайла
uploaded_file = st.file_uploader("Choose a video...", type=["mp4", "avi", "mov", "mkv"])
if uploaded_file is not None:
# Создаем временную директорию для сохранения загруженного видео
os.makedirs("temp", exist_ok=True)
input_video_path = os.path.join("temp", uploaded_file.name)
output_video_path = os.path.join("temp", "converted_video.mp4")
# Сохраняем загруженное видео на диск
with open(input_video_path, "wb") as f:
f.write(uploaded_file.getbuffer())
# Проверка типа файла и конвертация при необходимости
file_type = uploaded_file.type.split('/')[1]
if file_type in ['mp4', 'webm', 'ogg']:
st.video(input_video_path, start_time=0)
st.write("Original Video")
else:
if convert_to_mp4(input_video_path, output_video_path):
st.success("Video converted successfully!")
st.video(output_video_path, start_time=0)
st.write("Original Video (Converted)")
else:
st.error("Failed to convert video.")
# Кнопка для генерации и воспроизведения дублированного видео
if st.button('Generate'):
st.video(output_video_path if file_type not in ['mp4', 'webm', 'ogg'] else input_video_path, start_time=0)
st.write("Duplicated Video") |