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

网页版传奇霸主攻略网站建设备案优化之看

网页版传奇霸主攻略,网站建设备案优化之看,济南经三路专业做网站,郑州公共住宅建设投资有限公司网站ffmpeg 使用 ffplay 进行 hls 拉流 分析 1 从使用ffplay 调用 http://192.168.1.100:8080/live/livestream.m3u8 开始#xff0c;进入到ffmpeg 的分析使用的协议选择相应的解复用器的步骤。 其他协议或者文件方式的使用ffplay也是这个步骤流程的。 目录#xff1a;一、流程图…ffmpeg 使用 ffplay 进行 hls 拉流 分析 1 从使用ffplay 调用 http://192.168.1.100:8080/live/livestream.m3u8 开始进入到ffmpeg 的分析使用的协议选择相应的解复用器的步骤。 其他协议或者文件方式的使用ffplay也是这个步骤流程的。 目录一、流程图二、代码分析1、ffplay.c调用avformat_open_input()进行打开文件2、进入utils.c的avformat_open_input()前面这些是一些初始化操作 分配AVFormatContext、保存参数到AVDictionary、设置参数3、utils.c的avformat_open_input()中调用init_input()进行打开文件和探测协议格式4、utils.c的init_input()中调用av_probe_input_format2()会根据后缀名探测格式5、format.c中av_probe_input_format2()调用av_probe_input_format3()6、format.c中av_probe_input_format3()7、遍历时查找到hls时调用hls_probe()返回0。这次探测格式就失败了8、utils.c中init_input()中调用io_open()默认打开操作9、io_open是在option.c中的avformat_get_context_defaults()绑定io_open_default()10、option.c中的io_open_default()中调用ffio_open_whitelist()11、aviobuf.c中ffio_open_whitelist()中调用ffurl_open_whitelist()12、avio.c中ffurl_open_whitelist()调用ffurl_alloc()创建url上下文13、avio.c中ffurl_alloc()调用url_find_protocol()查找协议14、avio.c中url_find_protocol根据url文件名查找协议15、avio.c中ffurl_alloc()调用url_alloc_for_protocol()根据协议创建上下文16、avio.c中url_alloc_for_protocol()创建协议上下文进行一系列初始化操作17、avio.c中的ffurl_open_whitelist()创建url上下文后调用ffurl_connect()进行连接18、avio.c中的ffurl_connect()根据不同的协议进行打开url操作19、 得到连接上的URLContext返回到ffio_open_whitelist() 再调用ffio_fdopen()创建ffio_fdopen(),创建AVIOContext20、 ffio_fdopen()调用avio_alloc_context()创建AVIOContext,和一些初始化操作21、 avio_alloc_context()再调用ffio_init_context()初始化22、ffio_init_context()初始化io_read_packet(),io_write_packet这些函数就是封装了调用URLProtocol的url_read(),url_write()。23、经过获取HTTP 协议上下文再创建AVIOContext后返回到utils.c的init_input() 调用av_probe_input_buffer2()来读取数据24、 init_input()中调用avio_read()读取数据。 avio_read()中又封装了几层25、 avio_read()返回后就得到m3u8文件数据再调用av_probe_input_format2()就可以得到是使用ff_hls_demuxer解复用器26、 从init_input()返回到avformat_open_input()调用解复用器的read_header()27、 hls_read_header()中第一次调用parse_playlist()解析m3u8中的播放列表28、 parse_playlist()判断两次不同的调用时处理29、parse_playlist()接着读取一行判断m3u8标志和保存之前分片30、 parse_playlist()接着循环一行行读取处理31、 parse_playlist() 中判断是否嵌套m3u8做不同处理32、 parse_playlist()最后处理之前的分片33、返回hls_read_header()判断是否执行第二次parse_playlist()34、 hls_read_header()中选择开始的分片35、 hls_read_header()最后开启每个播放列表的解复用器三、关于使用参数指定输入格式时的分析1、ffplay.c中opt_format()处理指定格式参数2、format.c 中av_find_input_format()根据指定格式查找解复用器3、allformat.c中av_demuxe_iterate遍历所有解复用器一、流程图 二、代码分析 1、ffplay.c调用avformat_open_input()进行打开文件 2、进入utils.c的avformat_open_input()前面这些是一些初始化操作 分配AVFormatContext、保存参数到AVDictionary、设置参数 3、utils.c的avformat_open_input()中调用init_input()进行打开文件和探测协议格式 4、utils.c的init_input()中调用av_probe_input_format2()会根据后缀名探测格式 5、format.c中av_probe_input_format2()调用av_probe_input_format3() 6、format.c中av_probe_input_format3() 7、遍历时查找到hls时调用hls_probe()返回0。这次探测格式就失败了 8、utils.c中init_input()中调用io_open()默认打开操作 9、io_open是在option.c中的avformat_get_context_defaults()绑定io_open_default() 10、option.c中的io_open_default()中调用ffio_open_whitelist() 11、aviobuf.c中ffio_open_whitelist()中调用ffurl_open_whitelist() 12、avio.c中ffurl_open_whitelist()调用ffurl_alloc()创建url上下文 13、avio.c中ffurl_alloc()调用url_find_protocol()查找协议 14、avio.c中url_find_protocol根据url文件名查找协议 得到的是ff_http_protocol 15、avio.c中ffurl_alloc()调用url_alloc_for_protocol()根据协议创建上下文 16、avio.c中url_alloc_for_protocol()创建协议上下文进行一系列初始化操作 17、avio.c中的ffurl_open_whitelist()创建url上下文后调用ffurl_connect()进行连接 18、avio.c中的ffurl_connect()根据不同的协议进行打开url操作 19、 得到连接上的URLContext返回到ffio_open_whitelist() 再调用ffio_fdopen()创建ffio_fdopen(),创建AVIOContext 20、 ffio_fdopen()调用avio_alloc_context()创建AVIOContext,和一些初始化操作 21、 avio_alloc_context()再调用ffio_init_context()初始化 22、ffio_init_context()初始化io_read_packet(),io_write_packet这些函数就是封装了调用URLProtocol的url_read(),url_write()。 23、经过获取HTTP 协议上下文再创建AVIOContext后返回到utils.c的init_input() 调用av_probe_input_buffer2()来读取数据 24、 init_input()中调用avio_read()读取数据。 avio_read()中又封装了几层 25、 avio_read()返回后就得到m3u8文件数据再调用av_probe_input_format2()就可以得到是使用ff_hls_demuxer解复用器 26、 从init_input()返回到avformat_open_input()调用解复用器的read_header() 27、 hls_read_header()中第一次调用parse_playlist()解析m3u8中的播放列表 28、 parse_playlist()判断两次不同的调用时处理 29、parse_playlist()接着读取一行判断m3u8标志和保存之前分片 30、 parse_playlist()接着循环一行行读取处理 31、 parse_playlist() 中判断是否嵌套m3u8做不同处理 32、 parse_playlist()最后处理之前的分片 33、返回hls_read_header()判断是否执行第二次parse_playlist() 34、 hls_read_header()中选择开始的分片 35、 hls_read_header()最后开启每个播放列表的解复用器 三、关于使用参数指定输入格式时的分析 1、ffplay.c中 opt_format()处理指定格式参数 2、format.c 中av_find_input_format()根据指定格式查找解复用器 3、allformat.c中av_demuxe_iterate遍历所有解复用器
http://www.zqtcl.cn/news/464699/

相关文章:

  • 知道网站域名怎么联系域名解析不成功是什么意思
  • 武宁网站ui专业设计wordpress评论通知代码6
  • thymeleaf做网站 seo重庆平台网站建设找哪家
  • WordPress子站站群建筑工程网上申请质量安全监督
  • 怎么给网站添加图标山西手机版建站系统哪家好
  • frontpage网页制作视频教程昆明网站建设优化企业
  • 工信部 诚信网站备案公司网络营销方案
  • 网站开发采集工具如何做网站内链优化
  • 在线做英语题的网站揭阳建站服务
  • 网站非法篡改wordpress的知名网站
  • 保定网建站模板uv推广平台
  • 股权分配系统建设网站wordpress mip 模板
  • 网站及其建设的心得体会昆明云南微网站
  • 详情页在线设计网站推荐广州建设网站企业
  • 设计师网站建设哪家网络公司做网站
  • 宣城网站开发专业制注册资金写100万后悔
  • 专业的高密做网站的建公司网站要多久
  • 蚌埠做网站哪家好WordPress强制ssl
  • 1m宽带做网站平台建站
  • 学习做ppt 的网站班会活动设计方案模板
  • 廊坊住房和城乡建设厅网站门户网站开发招标
  • 免费下载网站设计方案wordpress zenmeyong
  • 网站建设与维护相关知识网站建设遵循的规范
  • 网站建设费科目东莞市塘厦镇
  • 网站建设策划书1万字深圳公司网站设计企业
  • 建设企业网站小微asp iis设置网站路径
  • 分类信息网站营销小程序appid是什么
  • 营销软文是什么意思网络seo培训
  • 效果好的手机网站建设成都网站制作报价
  • 江门网站建设推广平台注册公司费用要多少