import gradio as gr from gradio_videoslider import VideoSlider import os # --- 1. DEFINE THE PATHS TO YOUR LOCAL VIDEOS --- # # IMPORTANT: Replace the values below with the paths to YOUR video files. # # Option A: Relative Path (if the video is in the same folder as this app.py) # video_path_1 = "video_before.mp4" # video_path_2 = "video_after.mp4" # # Option B: Absolute Path (the full path to the file on your computer) # Example for Windows: # video_path_1 = "C:\\Users\\YourName\\Videos\\my_video_1.mp4" # # Example for Linux/macOS: # video_path_1 = "/home/yourname/videos/my_video_1.mp4" # Set your file paths here: video_path_1 = "src/examples/SampleVideo 720x480.mp4" video_path_2 = "src/examples/SampleVideo 1280x720.mp4" # --- 2. FUNCTION FOR THE UPLOAD EXAMPLE --- def process_uploaded_videos(video_inputs): """This function handles the uploaded videos.""" print("Received videos from upload:", video_inputs) return video_inputs # --- 3. GRADIO INTERFACE --- with gr.Blocks() as demo: gr.Markdown("# Video Slider Component Usage Examples") gr.Markdown("💻 Component GitHub Code") with gr.Tabs(): # --- TAB 1: UPLOAD EXAMPLE --- with gr.TabItem("1. Compare via Upload"): gr.Markdown("## Upload two videos to compare them side-by-side.") video_slider_input = VideoSlider(label="Your Videos", height=400, width=700, video_mode="upload") video_slider_output = VideoSlider( label="Video comparision", interactive=False, autoplay=True, video_mode="preview", show_download_button=False, loop=True, height=400, width=700 ) submit_btn = gr.Button("Submit") submit_btn.click( fn=process_uploaded_videos, inputs=[video_slider_input], outputs=[video_slider_output] ) # --- TAB 2: LOCAL FILE EXAMPLE --- with gr.TabItem("2. Compare Local Files"): gr.Markdown("## Example with videos pre-loaded from your local disk.") # This is the key part: we pass a tuple of your local file paths to the `value` parameter. VideoSlider( label="Video comparision", value=(video_path_1, video_path_2), interactive=False, show_download_button=False, autoplay=True, video_mode="preview", loop=True, height=400, width=700 ) # A check to give a helpful error message if files are not found. if not os.path.exists(video_path_1) or not os.path.exists(video_path_2): print("---") print(f"WARNING: Could not find one or both video files.") print(f"Please make sure these paths are correct in your app.py file:") print(f" - '{os.path.abspath(video_path_1)}'") print(f" - '{os.path.abspath(video_path_2)}'") print("---") if __name__ == '__main__': demo.launch(debug=True)