Spaces:
Paused
Paused
import gradio as gr | |
import ffmpeg | |
from gradio.components import Video | |
import os | |
def transcode_video(video): | |
"""Transcodes a video file to m3u8 using ffmpeg. | |
Args: | |
video: The video file to transcode. | |
Returns: | |
The path to the transcoded file. | |
""" | |
# Create a folder to save the transcoded video file to. | |
output_dir = os.path.dirname(video.path) | |
if not os.path.exists(output_dir): | |
os.makedirs(output_dir) | |
# Transcode the video file. | |
output_file = os.path.join(output_dir, f"{video.name}.m3u8" ) | |
ffmpeg.input(video.path).output(output_file, format="hls").run() | |
# Return the path to the transcoded file. | |
return output_file | |
video_files = [ | |
"/path/to/video1.mp4", | |
"/path/to/video2.mp4", | |
] | |
demo = gr.Interface(transcode_video, | |
gr.components.Video(), | |
"playable_video", | |
examples=video_files, | |
cache_examples=True) | |
if __name__ == "__main__": | |
demo.launch() | |