需求:在 linux 上用 flask 搭建一个静态服务器(视频较多)(因为验证方式比较独特,还需要加解密什么的,所以没法用 nginx 啥的)
用途:放在网站上使用 video 标签播放
问题:video 标签的 html 播放似乎都是在边加载边播放,还可以跳进度什么的。浏览器是怎么请求服务器的?我应该在服务器上怎么这样的程序?是断点续传那样加载的吗?
1
renmu 2019-12-24 14:02:08 +08:00 via Android
加解密应该和 Nginx 没什么关系,在 flask 外面肯定要套一个壳,视频的话就是 m3u8
|
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> ``` |
3
xiaojiantao OP @renmu 嗯嗯,那那些直接嵌入 mp4 mkv 到 html 的 video 标签似乎也能够边加载加显示,这是怎么做到的?
|
4
xiaojiantao OP @bolide2005 谢谢,我这个是因为需要加密解密的,所以需要在后端写一些程序。只是不太知道浏览器加载媒体文件时候边加载边显示是怎么实现的
|
5
bolide2005 2019-12-24 14:17:08 +08:00
|
6
xiaojiantao OP @bolide2005 好的。
|
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 播放器控件。 这个方案叫什么来着?名字忘记了。 |