Spaces:
Paused
Paused
File size: 1,309 Bytes
f001877 485608a 1e5b13c c8942d9 7a80d3a 5296733 485608a 40446f2 d47c1c5 40446f2 ec46e62 701ed9a b7d9c54 131761b ca0877d d0d220f f8f7bf0 9bd2eae 7e0e151 c9de927 c137773 06412df c137773 72c532f 05649bb a413b20 485608a 7a80d3a 2024db3 7e0e151 |
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 |
import os
import time
import ffmpeg
import gradio
import gradio as gr
from gradio import components
import tempfile
import subprocess
from pathlib import Path
from gradio import inputs
# Define File object
File = Path
# Define temp directory
temp_dir = tempfile.mkdtemp()
video_file = gr.inputs.File(label="Video File", type="file")
quality = gr.inputs.Dropdown(choices=["18", "23", "28", "32"], label="Quality", default="23")
aspect_ratio = gr.inputs.Dropdown(choices=[
"1:1",
"4:3",
"3:2",
"5:4",
"16:9",
"21:9",
"1.85:1",
"2.35:1",
"3:1",
"360",
"9:16",
"16:9",
"2:1",
"1:2",
"9:1",
], label="Aspect Ratio", default="16:9")
video_url = gr.inputs.Textbox(label="Video URL")
def convert_video(video_file: File, quality, aspect_ratio, video_url):
if video_file is None:
video_file = Path(video_url)
output_path = f"{temp_dir}/{video_file.name}.m3u8"
ffmpeg_command = f"ffmpeg -i {video_file} -c:v libx264 -crf {quality} -f hls -aspect {aspect_ratio} {output_path}"
subprocess.run(ffmpeg_command, shell=True)
time.sleep(2)
# Return the output file directly
return components.Video(output_path)
from gradio import outputs
gr.Interface(convert_video, inputs=[video_file, quality, aspect_ratio, video_url], outputs=[outputs.Video()]).launch(share=False)
|