forked from streamlit/streamlit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvideo.py
87 lines (69 loc) · 2.48 KB
/
video.py
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# Copyright 2018-2021 Streamlit Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
import streamlit as st
# These are the formats supported in Streamlit right now.
VIDEO_EXTENSIONS = ["mp4", "ogv", "m4v", "webm"]
# For sample video files, try the Internet Archive, or download a few samples here:
# http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5
st.title("Video Widget Examples")
st.header("Local video files")
st.write(
"You can use st.video to play a locally-stored video by supplying it with a valid filesystem path."
)
def get_video_files_in_dir(directory):
out = []
for item in os.listdir(directory):
try:
name, ext = item.split(".")
except:
continue
if name and ext:
if ext in VIDEO_EXTENSIONS:
out.append(item)
return out
avdir = os.path.expanduser("~")
files = get_video_files_in_dir(avdir)
if len(files) == 0:
st.write(
"Put some video files in your home directory (%s) to activate this player."
% avdir
)
else:
filename = st.selectbox(
"Select a video file from your home directory (%s) to play" % avdir,
files,
0,
)
st.video(os.path.join(avdir, filename))
st.header("Remote video playback")
st.write("st.video allows a variety of HTML5 supported video links, including YouTube.")
def shorten_vid_option(opt):
return opt.split("/")[-1]
# A random sampling of videos found around the web. We should replace
# these with those sourced from the streamlit community if possible!
vidurl = st.selectbox(
"Pick a video to play",
(
"https://youtu.be/_T8LGqJtuGc",
"https://www.youtube.com/watch?v=kmfC-i9WgH0",
"https://www.youtube.com/embed/sSn4e1lLVpA",
"http://www.rochikahn.com/video/videos/zapatillas.mp4",
"http://www.marmosetcare.com/video/in-the-wild/intro.webm",
"https://www.orthopedicone.com/u/home-vid-4.mp4",
),
0,
shorten_vid_option,
)
st.video(vidurl)