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

网站建设可以入开发成本吗桶装水网站建设

网站建设可以入开发成本吗,桶装水网站建设,能免费做网站,二人对战的微信小程序目录 0.avformat_open_input的rtsp流程程纯净版1.rtsp拉流流程图2.rtsp拉流对象图 标准rtsp协议的基石是tcp,本节探索下ffmpeg的rtsp拉流协议tcp的创建及rtsp协商过程。 0.avformat_open_input的rtsp流程程纯净版 ffmpeg拉流,从avformat_open_input接口…

目录

  • 0.avformat_open_input的rtsp流程程纯净版
  • 1.rtsp拉流流程图
  • 2.rtsp拉流对象图

标准rtsp协议的基石是tcp,本节探索下ffmpeg的rtsp拉流协议tcp的创建及rtsp协商过程。

0.avformat_open_input的rtsp流程程纯净版

ffmpeg拉流,从avformat_open_input接口开始,去除与rtsp拉流无关的代码后,如下:


int avformat_open_input(AVFormatContext **ps, const char *filename,const AVInputFormat *fmt, AVDictionary **options)
{AVFormatContext *s = *ps;FFFormatContext *si;AVDictionary *tmp = NULL;int ret = 0;if (!s && !(s = avformat_alloc_context()))return AVERROR(ENOMEM);si = ffformatcontext(s);if (!s->av_class) {av_log(NULL, AV_LOG_ERROR, "Input context has not been properly allocated by avformat_alloc_context() and is not NULL either\n");return AVERROR(EINVAL);}if (options)av_dict_copy(&tmp, *options, 0);if ((ret = av_opt_set_dict(s, &tmp)) < 0)goto fail;if (!(s->url = av_strdup(filename ? filename : ""))) {ret = AVERROR(ENOMEM);goto fail;}if ((ret = init_input(s, filename, &tmp)) < 0)goto fail;s->probe_score = ret;s->duration = s->start_time = AV_NOPTS_VALUE;/* Allocate private data. */if (s->iformat->priv_data_size > 0) {if (!(s->priv_data = av_mallocz(s->iformat->priv_data_size))) {ret = AVERROR(ENOMEM);goto fail;}if (s->iformat->priv_class) {*(const AVClass **) s->priv_data = s->iformat->priv_class;av_opt_set_defaults(s->priv_data);if ((ret = av_opt_set_dict(s->priv_data, &tmp)) < 0)goto fail;}}if (s->iformat->read_header){if ((ret = s->iformat->read_header(s)) < 0) {if (s->iformat->flags_internal & FF_FMT_INIT_CLEANUP)goto close;goto fail;}}si->raw_packet_buffer_size = 0;update_stream_avctx(s);if (options) {av_dict_free(options);*options = tmp;}*ps = s;return 0;close:if (s->iformat->read_close)s->iformat->read_close(s);
fail:av_dict_free(&tmp);avformat_free_context(s);*ps = NULL;return ret;
}

其中留下了字典参数配置流程,因为基本会有所设置,参数配置参见《ffmpeg面向对象——参数配置机制及其设计模式探索》。

输入格式匹配(看下面流程图会清晰点),参见《ffmpeg面向对象-rtsp拉流相关对象》的第2节。

协议匹配机制(看下面流程图会清晰点),参见《ffmpeg面向对象——拉流协议匹配机制探索》。

输入格式类与协议类什么关系参见《ffmpeg面向对象——AVInputFormat与URLProtocol啥关系》。

这些结合流层图与对象图看会清晰点。

1.rtsp拉流流程图

在这里插入图片描述
rtsp的tcp链接创建在图中最右边。
rtsp协商流程也比较清晰,可以看到ff_rtsp_send_cmd是各个协商方法最终都要调用的中心转发节点。
另外可以看到底层tcp协议读写是如何对接的,结合下面对象图,就能深入理解输入格式类与协议类的关系,它们面向接口编程,各自分层迭代开发,互不影响。

2.rtsp拉流对象图

在这里插入图片描述

可琢磨的比较多,其中,输入格式类与底层协议类型都是“可变的”,因为这两者都是代码运行中匹配出来的,所以它们都被更上一层的进行“托管”。参见《ffmpeg面向对象——priv_data设计原理探索》。

http://www.yayakq.cn/news/343898/

相关文章:

  • iis搭建网站教程win7赣州seo外包怎么收费
  • 北京最新消息今天新增病例济南网站seo公司
  • 网站空间服务多少钱工作表现情况怎么写
  • 企业网站设计与优化网站建设数据保存在哪儿
  • 温州建设企业网站wordpress外贸网站
  • wordpress文章显示图片北京seo优化化
  • 做公益的网站有哪些wordpress 个人soho
  • 备案网站大全飞机多少钱一架
  • 手机网站开发总结网站备案座机
  • 在县城做团购网站全面的河南网站建设
  • h5制作网站全球购物网站排名
  • html怎么弄成网站php做公司网站
  • 马良行网站3d模型预览怎么做的wordpress istax
  • 视频直播网站开发运营步骤千库网ppt模板免费
  • 衣服图案设计网站上海公司牌照价格2022
  • 网站备案查询工信部手机版网站备案多少钱
  • 做视频网站视频存放在哪里做手机网站兼容
  • vs2012做网站做平台推广怎么找客户
  • 开发微网站安阳信息网官网
  • 做公司网站写什么信息wordpress检测替换
  • 网站建设维护兼职公司宣传软文
  • 做物流网站多少钱wordpress 老板页
  • 网站建设的思想南宁网站推广
  • 网站建设模块方案书浙江省建设信息港成绩查询
  • 把asp.net写的网站别人怎么访问网站开发原始数据
  • 大良网站制作网站建设和电商区别
  • 网站首页优化公司广告网站建设价格
  • 网站地址和网页地址网站后台修改导航栏
  • 手机怎么生成网站12333上海公共招聘网官网
  • 建设工程消防备案凭证网站百度网站排名怎么做