ffmegp / app.py
yking21's picture
Update app.py
310901f verified
Raw History Blame Contribute Delete
1.19 kB
import gradio as gr
# ุจุฏู„ุงู‹ ู…ู†: from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
from moviepy import VideoFileClip, TextClip, CompositeVideoClip
import requests
def process_video(video_url, audio_url, hook_text):
# ุชุญู…ูŠู„ ุงู„ููŠุฏูŠูˆ ูˆุงู„ุตูˆุช
with open("input.mp4", "wb") as f:
f.write(requests.get(video_url).content)
with open("audio.mp3", "wb") as f:
f.write(requests.get(audio_url).content)
# ุฏู…ุฌ ุงู„ู†ุต ูˆุงู„ุตูˆุช
video = VideoFileClip("input.mp4")
txt_hook = TextClip(hook_text, fontsize=45, color='white', font='Arial-Bold').set_position(('center', 'center')).set_duration(video.duration)
txt_caption = TextClip("ุงู‚ุฑุฃ ุงู„ูƒุงุจุชุดู† ๐Ÿ‘‡", fontsize=30, color='yellow', font='Arial-Bold').set_position(('center', video.h - 120)).set_duration(video.duration)
final = CompositeVideoClip([video, txt_hook, txt_caption])
final.write_videofile("output.mp4", codec="libx264", audio="audio.mp3")
return "output.mp4"
# ูˆุงุฌู‡ุฉ Gradio ู„ู„ู€ API
demo = gr.Interface(
fn=process_video,
inputs=["text", "text", "text"],
outputs="video"
)
demo.launch()