显示一个视频播放器。

函数签名[source]

st.video(data, format="video/mp4", start_time=0, *, subtitles=None, end_time=None, loop=False, autoplay=False, muted=False)

参数

data (str, Path, bytes, io.BytesIO, numpy.ndarray, or file)

要播放的视频。这可以是以下之一:

  • 托管视频文件的URL(字符串),包括YouTube URL。
  • 本地视频文件的路径。路径可以是strPath对象。路径可以是绝对的,也可以是相对于工作目录的(你在其中执行streamlit run)。
  • 原始视频数据。原始数据格式必须包括所有必要的文件头,以匹配通过format指定的文件格式。

format (str)

视频文件的MIME类型。默认为"video/mp4"。 更多信息,请参见https://tools.ietf.org/html/rfc4281

start_time (int, float, timedelta, str, or None)

元素应该开始播放的时间。这可以是以下之一:

  • None(默认):元素从头开始播放。
  • 一个intfloat,指定时间(以秒为单位)。float值向下舍入到整秒。
  • 一个字符串,指定时间,格式支持Pandas的Timedelta构造函数,例如"2 minute""20s",或"1m14s"
  • 一个来自Python内置的datetime库timedelta对象,例如timedelta(seconds=70)

字幕 (str, bytes, Path, io.BytesIO, 或 dict)

视频的可选字幕数据,支持多种输入类型:

  • None (默认): 无字幕。
  • 字符串、字节或路径:.vtt.srt 格式的字幕文件路径,或符合这些格式的字幕原始内容。路径可以是绝对路径或相对于工作目录的路径(执行 streamlit run 的地方)。如果提供原始内容,字符串必须符合 WebVTT 或 SRT 格式规范。
  • io.BytesIO:包含有效 .vtt.srt 格式字幕数据的 BytesIO 流。
  • 字典:标签和文件路径或 .vtt.srt 格式的原始字幕内容的配对,以启用多个字幕轨道。标签将在视频播放器中显示。示例: {"English": "path/to/english.vtt", "French": "path/to/french.srt"}

提供时,默认显示字幕。对于多个轨道,默认显示第一个。如果您不希望默认显示任何字幕,请在字典的第一个配对中使用空字符串作为值:{"None": "", "English": "path/to/english.vtt"}

不支持 YouTube 视频。

end_time (int, float, timedelta, str, or None)

元素应停止播放的时间。这可以是以下之一:

  • None(默认):元素播放到结束。
  • 一个intfloat,指定时间(以秒为单位)。float值向下舍入为整秒。
  • 一个字符串,指定时间格式,支持Pandas的Timedelta构造函数,例如"2 minute""20s",或"1m14s"
  • 一个来自Python内置的datetime库timedelta对象,例如timedelta(seconds=70)

loop (bool)

视频是否应循环播放。

autoplay (bool)

视频是否应自动开始播放。默认情况下为False。如果用户未通过点击页面某处与页面进行交互,浏览器将不会自动播放未静音的视频。要在没有用户交互的情况下启用自动播放,您还必须设置muted=True

muted (bool)

视频是否应该以静音播放。默认情况下这是 False。将此与 autoplay=True 结合使用 以启用无需用户交互的自动播放。

示例

import streamlit as st

video_file = open("myvideo.mp4", "rb")
video_bytes = video_file.read()

st.video(video_bytes)

当你包含字幕时,它们将默认开启。观众可以从浏览器的默认视频控制菜单中关闭字幕(或标题),通常位于视频的右下角。

这是一个简单的VTT文件 (subtitles.vtt):

WEBVTT

0:00:01.000 --> 0:00:02.000
Look!

0:00:03.000 --> 0:00:05.000
Look at the pretty stars!

如果上述VTT文件与您的应用程序位于同一目录中,您可以像这样添加字幕:

import streamlit as st

VIDEO_URL = "https://example.com/not-youtube.mp4"
st.video(VIDEO_URL, subtitles="subtitles.vtt")

请参阅我们视频字幕功能演示中支持的字幕输入类型的更多示例。

注意

如果视频使用MP4V编码(这是OpenCV中的一个导出选项),可能无法显示,因为这种编解码器不被浏览器广泛支持。将视频转换为H.264将允许视频在Streamlit中显示。更多信息请参见StackOverflow帖子Streamlit论坛帖子

forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。