flask 自建服务器

2019-12-24 13:55:13 +08:00
 xiaojiantao

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

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

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

4042 次点击
所在节点    Flask
7 条回复
renmu
2019-12-24 14:02:08 +08:00
加解密应该和 Nginx 没什么关系,在 flask 外面肯定要套一个壳,视频的话就是 m3u8
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
2019-12-24 14:11:59 +08:00
@renmu 嗯嗯,那那些直接嵌入 mp4 mkv 到 html 的 video 标签似乎也能够边加载加显示,这是怎么做到的?
xiaojiantao
2019-12-24 14:15:08 +08:00
@bolide2005 谢谢,我这个是因为需要加密解密的,所以需要在后端写一些程序。只是不太知道浏览器加载媒体文件时候边加载边显示是怎么实现的
bolide2005
2019-12-24 14:17:08 +08:00
@xiaojiantao #4 那得提供流媒体服务了,参考一下这个?

https://juejin.im/entry/5a97b98f6fb9a028b5474eac
xiaojiantao
2019-12-24 14:23:12 +08:00
@bolide2005 好的。
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 播放器控件。

这个方案叫什么来着?名字忘记了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/631843

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX