美文网首页
视频播放不暴露源地址该怎么做?

视频播放不暴露源地址该怎么做?

作者: 封不然 | 来源:发表于2018-09-16 00:19 被阅读33次

    在近几年,国家对于版权问题慢慢的重视了起来,在各类资源需要购买版权的前提下,怎么能保证自己的资源不被盗取,杜绝非法下载,这个问题就越来越显著起来。其中视频资源在众多资源中对于此类问题的迫切度尤为突出。接下来,就讨论下保护视频的几种方法。

    一.防止真是地址暴露

    防止真实地址暴露,这个是首要解决的问题,我记得在几年前,在大部分网址中,如果有发现喜欢的视频想保存下来,都会采用,F12,找到视频的真实地址,然后直接访问保存下来,这无疑是没有任何保护措施的。
    解决思路:把真实的下载链接,隐藏在服务端提供的某个接口的背后,通过返回结果,再来获得真实的下载连接,然后再使用TCP等方式进行文件下载。「尽量避免使用http/https协议下载」

    二.对视频进行处理保护

    保护好了文件下载的时候还远远不够的,因为像视频资源的话,在观看浏览的时候,资源实际是要下载到客户端的,那么就意味着,还需要对视频进行某种处理才可以。以下介绍主流的几种方式。
    1.视频加密
    当然视频加密是最好的办法,例如现在很多培训资源,需要使用专门的播放器,在购买后绑定主机机器码,进行解密才能播放。不过这种相对处理成本较高,加密工作所带来的维护量加大,并且在解密的过程中必然带来资源和效率的损耗。
    2.区分片源
    区分片源的办法主要是为了区分预览以及已购两部分,在未购买的时候播放的是预览片源,在购买后访问的是正常视频片源。不过这种处理方式的话会占用更多的资源存储空间。
    3.视频切片
    视频切片,顾名思义就是将视频切割成一片一片的,举例来说就是将一个视频按照20s为段区间进行视频切割。在实际观看的时候,每次完成一段后,再进行下一段的请求,解决了第二种产生的问题。此种方式也为一般视频业务的主流处理方式。
    推荐一个视频处理工具FFmpeg「FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库」,介绍下项目中使用的一个PHP库PHP-FFMpeg
    (项目地址:https://github.com/PHP-FFMpeg/PHP-FFMpeg), 是 FFMpeg 和 FFProbe 命令的 PHP 面对对象 Wrapper。

    # composer 
    $ composer require "php-ffmpeg/php-ffmpeg:~0.5"
    

    三.更深的保护措施

    1.文件路径的保存
    例如在保存的时候,尽量避免以id等来作为一个切片保存的名称,还是尽量的使用一段乱码式的文件名来进行存储
    2.Flash播放
    播放舍弃flash是有原因的,安全原因和能耗原因都是很重要的考虑因素,使用Flash来做,运行在Flash VM上代码,基本上都可以说是透明的,所以不存在保密。具体的替代方式的话,如果大家有好的解决方案,可以说出来讨论以下。

    还有没有更好的视频解决方案呢?有的话请留言,咱们可以共同讨论下,谢谢。

    相关文章

      网友评论

          本文标题:视频播放不暴露源地址该怎么做?

          本文链接:https://www.haomeiwen.com/subject/pgeqwftx.html