File size: 933 Bytes
88c7481
 
 
cb2c10c
838164d
6388cc6
 
7148179
88c7481
 
b059570
88c7481
9571046
88c7481
 
a64acd3
7148179
a64acd3
 
 
88c7481
7148179
 
88c7481
 
 
 
fb7cfb1
 
7f52e8a
7148179
45a6dfa
724f805
 
45a6dfa
1d5a2f0
724f805
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
import gradio as gr
import ffmpeg

from gradio.components import File

import os

def transcode_video(input_video_file):
  """Transcodes a video file to m3u8 using ffmpeg.
  Args:
    input_video_file: The path to 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(input_video_file)
  if not os.path.exists(output_dir):
    os.makedirs(output_dir)

  # Transcode the video file.
  output_file = os.path.join(output_dir, f"{input_video_file.name}.m3u8")
  ffmpeg.input(input_video_file).output(output_file, format="hls").run()

  # Return the path to the transcoded file.
  return output_file

# Remove unused keyword argument
input_video_file = File()

outputs={"output_file": File(accept=".m3u8")}

gr.Interface(
  transcode_video,
  inputs={"input_video_file": input_video_file},
  outputs=outputs
).launch()