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 = [ "/output_dir/NEARHUBanimation.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()