当前位置: 首页 > news >正文

网站建设石家庄全国各城市疫情高峰感染高峰进度

网站建设石家庄,全国各城市疫情高峰感染高峰进度,做网站好一点的软件,wordpress安装主题实例 不成功目录 1 前言 2 ffmpeg源码修改 2.1 增加头文件 2.2 http上下文增加解密密钥和AVAESCTR结构体 2.3 aes解密上下文初始化 2.4 对http数据部分解密 2.5 http关闭时清理资源 3 ffmpeg使用 1 前言 当前视频拉流已经通过URL鉴权方式来对访客身份进行识别和过滤,但…

目录

1 前言

2 ffmpeg源码修改

2.1 增加头文件

2.2 http上下文增加解密密钥和AVAESCTR结构体

2.3 aes解密上下文初始化

2.4 对http数据部分解密

2.5 http关闭时清理资源

3 ffmpeg使用


1 前言

当前视频拉流已经通过URL鉴权方式来对访客身份进行识别和过滤,但仍然存在URL泄露的情况,需要通过内容加密来保证直播流只能在特定的播放器进行查看,这样即使URL泄露也没有影响。

参考了阿里云直播加密方案后我们的内容加密架构图如上,其中播放器基于ffmpeg开发,使用的是https-flv协议,其中对称加密使用的是aes加密ctr模式,在之前进行录像加密时需要实现从任意字节任意长度进行加解密,因此之前已经封装了一套基于openssl的加解密函数(使用AES CTR模式实现任意位置数据加解密_openssl aes ctr-CSDN博客),但直播内容加密是从前向后的有序流式传输,不存在seek操作,因此这个场景较为简单。

在修改ffmpeg代码时发现ffmpeg本身就封装了一套aes加解密函数,可以直接拿来使用,在此进行记录。

2 ffmpeg源码修改

2.1 增加头文件

https-flv的数据解密既可以放到协议层,也可以放到解封装层,经过比较还是放到协议层修改比较方便,对应的文件就是http.c。

ffmpeg对aes加解密的头文件是aes_ctr.h,因此需要在http.c文件增加aes_ctr.h头文件包含。

#include “libavutil/aes_ctr.h”

2.2 http上下文增加解密密钥和AVAESCTR结构体

http协议对应的内部上下文为HTTPContext结构体,进行解密操作首先需要在HTTPContext结构体中包含解密密钥和对应解密的AESCTR结构体。

typedef struct HTTPContext {……char *key; //解密密钥struct AVAESCTR *aes_ctr; //aes解密上下文
} HTTPContext;

另外我们还为http协议增加了配置项用来设置解密密钥

static const AVOption options[] = {……{“key”, “The key used to crpty http payload”, OFFSET(key), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, D },{ NULL }
};

2.3 aes解密上下文初始化

在http_open函数中进行aes解密上下文初始化,在这里我们通过是否设置key来同时兼容需要解密和不需要解密两种场景。

static int http_open(……) {……if (s->key) {s->aes_ctr = av_aes_ctr_alloc();if (!s->aes_ctr) {return AVERROR(ENOMEM);}ret = av_aes_ctr_init(s->aes_ctr, s->key);if (ret < 0) {return ret;}av_aes_ctr_set_iv(s->aes_ctr, s->key); /*iv策略需要与服务端一致*/}if (s->listen) {……
}

2.4 对http数据部分解密

在http_read函数中对收到的数据部分进行解密

static int http_read(……) {……if (size > 0 && s->key) {av_aes_ctr_crypt(s->aes_ctr, buf, buf, size);}
}

2.5 http关闭时清理资源

在http_close时进行相应的资源清理

static int http_close(……) {……if (s->aes_ctr) {av_aes_ctr_free(s->aes_ctr);}return ret;
}

3 ffmpeg使用

上面的修改完成后就就可以编译得到可执行程序和库文件,下面演示使用ffmpeg获取内容加密的直播流信息,假设密钥为“0123456789abcdef”

ffmpeg -f flv -key “0123456789abcdef”-i https://192.168.1.100:8080/live/stream.flv

http://www.wangmingla.cn/news/146141.html

相关文章:

  • wordpress 用户站点百度关键词代做排名
  • 自己电脑做网站要下载百度网址大全首页链接
  • 个人建购物网站怎么备案网站外链有多重要
  • 杭州网站建设哪个平台好文娱热搜榜
  • 遵义市做网站公司百度上怎么打广告宣传
  • 网站建设的软件介绍网络seo是什么意思
  • 贵州做网站找谁百度云手机app下载
  • 在线做海报网站网站百度手机端排名怎么查询
  • 塘厦做网站网站推广公司电话
  • 美食地图网站开发百度权重排名
  • .net可以做网站做游戏 博客园株洲网络推广
  • 手机网站怎么做上海seo推广方法
  • 莱芜招聘网seo领导屋
  • 免费网站浏览器谷歌推广怎么操作
  • 网站不备案做seo没用东莞疫情最新消息今天
  • 做类似淘宝的网站设计需要什么东莞网站关键词优化公司
  • 网站模糊设计发帖推广
  • 网络科技公司都是骗局吗南宁seo规则
  • 怎样做商城网站的推广信息流优化师发展前景
  • 网站内怎么做链接网站建设公司业务
  • 网站建建设公司和网络自建中国国际新闻
  • 京挑客网站怎么做谷歌推广优化
  • 中国建设工程交易网廊坊首页霸屏排名优化
  • 网站开发 阿里seo页面如何优化
  • 营销型网站策划怎么做网页制作免费模板
  • 做软装什么网站可以吗seo搜狗
  • 电子商务网站建设课程设计百度搜索风云榜电脑版
  • 设计网站公司 生活湖南岚鸿教育培训网站
  • 成都网站海口网站建设青岛网站关键词优化公司
  • 新疆交通建设管理局官方网站关键词优化多少钱