V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaojiantao
V2EX  ›  Flask

flask 自建服务器

  •  
  •   xiaojiantao · 2019-12-24 13:55:13 +08:00 · 4173 次点击
    这是一个创建于 1794 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:在 linux 上用 flask 搭建一个静态服务器(视频较多)(因为验证方式比较独特,还需要加解密什么的,所以没法用 nginx 啥的)

    用途:放在网站上使用 video 标签播放

    问题:video 标签的 html 播放似乎都是在边加载边播放,还可以跳进度什么的。浏览器是怎么请求服务器的?我应该在服务器上怎么这样的程序?是断点续传那样加载的吗?

    7 条回复    2019-12-24 14:31:01 +08:00
    renmu
        1
    renmu  
       2019-12-24 14:02:08 +08:00 via Android
    加解密应该和 Nginx 没什么关系,在 flask 外面肯定要套一个壳,视频的话就是 m3u8
    bolide2005
        2
    bolide2005  
       2019-12-24 14:10:01 +08:00
    我没做过,刚刚试了一下这个库,后端不用操作什么,只需要提供视频地址,你试试

    https://videojs.com/getting-started

    我的示例代码
    ```html
    <head>
    <link href="https://vjs.zencdn.net/7.5.5/video-js.css" rel="stylesheet" />

    <!-- If you'd like to support IE8 (for Video.js versions prior to v7) -->
    <script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script>
    </head>

    <body>
    <video
    id="my-video"
    class="video-js"
    controls
    preload="auto"
    width="640"
    height="264"
    poster="MY_VIDEO_POSTER.jpg"
    data-setup="{}"
    >
    <source src="http://techslides.com/demos/sample-videos/small.mp4" type="video/mp4" />
    <p class="vjs-no-js">
    To view this video please enable JavaScript, and consider upgrading to a
    web browser that
    <a href="https://videojs.com/html5-video-support/" target="_blank"
    >supports HTML5 video</a
    >
    </p>
    </video>

    <script src="https://vjs.zencdn.net/7.5.5/video.js"></script>
    </body>
    ```
    xiaojiantao
        3
    xiaojiantao  
    OP
       2019-12-24 14:11:59 +08:00
    @renmu 嗯嗯,那那些直接嵌入 mp4 mkv 到 html 的 video 标签似乎也能够边加载加显示,这是怎么做到的?
    xiaojiantao
        4
    xiaojiantao  
    OP
       2019-12-24 14:15:08 +08:00
    @bolide2005 谢谢,我这个是因为需要加密解密的,所以需要在后端写一些程序。只是不太知道浏览器加载媒体文件时候边加载边显示是怎么实现的
    bolide2005
        5
    bolide2005  
       2019-12-24 14:17:08 +08:00
    @xiaojiantao #4 那得提供流媒体服务了,参考一下这个?

    https://juejin.im/entry/5a97b98f6fb9a028b5474eac
    xiaojiantao
        6
    xiaojiantao  
    OP
       2019-12-24 14:23:12 +08:00
    @bolide2005 好的。
    tinybaby365
        7
    tinybaby365  
       2019-12-24 14:31:01 +08:00
    一个大家常用的方法:
    0.每个视频一个独立的 key 用于 aes128 加密,key 存在数据库,合法播放时 js 通过 api 得到这个 key;
    1.每个视频都切成很多小块(m3u8+ts),用该视频的 key 对 ts 进行 aes 加密,每一个 ts 生成一个视频截图(实现预览功能)
    2.m3u8 里面要按规范进行加密的描述;
    3.找到支持这个方案的 js 播放器控件。

    这个方案叫什么来着?名字忘记了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3262 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:12 · PVG 20:12 · LAX 04:12 · JFK 07:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.