streamlit学习-如何播放HLS视频(streamlit嵌入html)

streamlit学习-如何播放HLS视频

本文演示了streamlit如何实现hls直播streamlit中嵌入html

一.效果

二.直播环境搭建(仅供演示)

1.生成m3u8

bash 复制代码
ffmpeg.exe -i abc.mp4 -c:v libx264 -an -vbsf h264_mp4toannexb -f hls playlist.m3u8

2.搭建http服务器(支持跨域)

python 复制代码
import os
import sys
import http.server
import socketserver
class HTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_header('Access-Control-Allow-Origin', '*')
        self.send_header('Access-Control-Allow-Methods', 'GET,POST')
        self.send_header('Access-Control-Allow-Headers', 'x-requested-with,content-type')
        http.server.SimpleHTTPRequestHandler.end_headers(self)
def server(port):
    httpd = socketserver.TCPServer(('', port), HTTPRequestHandler)
    return httpd
srv=server(8000)
srv.serve_forever()

3.验证hls(VLC播放 http://localhost:8000/playlist.m3u8)

三.streamlit demo

python 复制代码
import streamlit as st  #1.31.1
import os
import sys
import time
import streamlit.components.v1 as components

def main():
    # 设置标题,图标等
    st.set_page_config(layout="centered",page_title="HLS播放",page_icon=":shark:")
    
    st.write("演示HLS播放")
    html_content='''
<html> 
<head>
    <meta charset="utf-8">
    <style>
        .video-js {
            width: 100%;
            height: 100%;
        }
    </style>
    <script src="https://unpkg.com/hls.js@0.14.17/dist/hls.js"></script>
    <body>
        <video id="videoPlayer" controls class="video-js"></video>
    </body>
    <script>
    var video = document.getElementById('videoPlayer');
    var hls = new Hls();
    if (Hls.isSupported()) {
      hls.loadSource('http://localhost:8000/playlist.m3u8');
      hls.attachMedia(video);
      hls.on(Hls.Events.MANIFEST_PARSED, function() {
        video.play();
      });
    }
    </script>
</html>
    '''
    components.html(html_content,height=400)
    st.button("按钮")
if __name__ == "__main__":
    main()
相关推荐
GEO从入门到精通5 小时前
课程怎么选?2026年GEO学习资源全梳理
学习
优化Henry6 小时前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
硬件学长森哥6 小时前
成像技术实例-HDR视频技术基础
图像处理·音视频
xiaomu001236 小时前
高湿环境床垫湿度管理技术框架:湿度阈值、排湿结构与材料选型
经验分享·学习·学习方法
zhangrelay7 小时前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
probex_7 小时前
学习笔记:知识图谱是什么,在测试里能干什么
笔记·学习·知识图谱
美狐美颜SDK开放平台9 小时前
Android与iOS直播APP美颜有什么区别?视频美颜SDK开发详解
android·ios·音视频·视频美颜sdk
每天题库9 小时前
危险货物道路运输从业资格证题库刷题重点与错题梳理
学习·安全·考试·题库·考证
m4Rk_10 小时前
【论文阅读】Agent 记忆机制(86):Skill-Pro——用 Non-Parametric PPO 将交互经验演化为可复用技能
论文阅读·人工智能·学习·开源·github
AOI小白新手上路10 小时前
从 Keil 调试视角看 51 指针,到 Cortex-M 内存映射访问寄存器 · 学习笔记
笔记·学习