1、简述

在使用 avio_open 接口时,只要给形参 filename 传入 url 格式的字符串就能找到对应的协议。这篇博客就是追踪 avio_open 的调用关系,探明如何根据一个url字符串就能找到对应的协议。下面以rtmp协议为例。

2、FFmpeg对rtmp协议的支持

rtmp协议的实现源码在 libavformat/rtmpproto.c 中,如果将 AVClass 和 URLProtocol 结构体看作调用协议的抽象类或者接口类,要实现对rtmp的支持,就要实现这些接口。rtmpproto.c 中 使用宏 RTMP_PROTOCOL(rtmp) 初始化了这两个结构体:AVClass rtmp_class 和 URLProtocol ff_rtmp_protocal,以及各个接口的实现。
也就是说,在加载libavformat库时,rtmp协议相关功能已经初始化,静等调用。

static const AVClass rtmp_class = {.class_name = rtmp,.item_name  

【FFmpeg】如何通过url的格式找到对应的协议,以rtmp为例相关推荐

  1. 2023-03-05:ffmpeg推送本地视频至lal流媒体服务器(以RTMP为例),请用go语言编写。

    2023-03-05:ffmpeg推送本地视频至lal流媒体服务器(以RTMP为例),请用go语言编写. 答案2023-03-05: 使用 github.com/moonfdd/ffmpeg-go 库 ...

  2. Windows用ffmpeg批量自动转换视频格式(以下以ts转mp4为例)

    for %%a in ("*.ts") do ffmpeg -i "%%a" -f mp4 -codec copy "\%%~na.mp4" ...

  3. 最简单的基于FFMPEG 4.2的封装格式转换器(无编解码MP4转FLV)

    文章目录 最简单的基于FFMPEG 4.2的封装格式转换器(无编解码) 配置 代码 结果 关键函数说明 avformat_open_input avformat_find_stream_info av ...

  4. FFmpeg学习4:音频格式转换

    前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式 ...

  5. .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)

    .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services.AddM ...

  6. data类型的Url的格式

    data类型的Url的格式 一.data类型的简介 所谓"data"类型的Url格式,是在RFC2397中提出的,目的对于一些"小"的数据,可以在网页中直接嵌入 ...

  7. css cursor url用法格式详解

    css cursor url用法格式:css:{cursor:url('图标路径'),auto;} //IE,FF,chrome浏览器都可以 实例代码:html{cursor: url("h ...

  8. php 模块 远程,ThinkPHP远程调用模块的操作方法 URL 参数格式

    * 远程调用模块的操作方法 URL 参数格式 [项目://][分组/]模块/操作 * @param string $url 调用地址 * @param string|array $vars 调用参数 ...

  9. linux下ts转mp4,ffmpeg安装及实现视频格式的转换、分片(ts m3u8)

    1.简介 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案 2.相关 系统版本:Cent ...

最新文章

  1. 区块链相关论文研读7:通过分片(Sharding)扩展区块链
  2. 加速100倍,性能媲美SOTA,浙大知识蒸馏新方法FastDFKD
  3. 第七章 shell学习之退出、测试、判断及操作
  4. SQL CE 3.0 与SQL CE 3.5区别
  5. 用WM_COPYDATA消息来实现两个进程之间传递数据
  6. 通过代码解决全角问题类调用法
  7. 登录小米帐号怎么会显示服务器错误,小米官网登录不进去怎么办 小米官网无法登陆是怎么回事...
  8. 网站制作笔记一域名购买与主机备案
  9. 【问题记录】pip 安装报错 Failed to establish a new connection
  10. uniapp 发布h5后报错,连接服务器超时,点击屏幕重试
  11. 【云原生】SpringCloud系列之服务调用OpenFeign(基本概念和使用步骤)
  12. Redis学习笔记(二):Redis keys 命令
  13. 后羿采集器怎么导出数据_免费爬虫工具:后羿采集器如何采集同花顺圈子评论数据...
  14. 如何使用AutoCAD Map 3D Object Data读模块
  15. H5页面的测试点整理
  16. 《爱乐之城》月亮与六便士,你选哪个?
  17. 康托展开详解 -csdn博客
  18. jquery遍历json数组
  19. C语言数字图像处理----3.2 图像边缘检测之Canny边缘检测算法
  20. 潇洒分享用UG和Mastercam的心得体会

热门文章

  1. 【lidar】基于YOLO的3D目标检测(激光雷达点云)课程设计
  2. VS上配置opencv249所添加的附加依赖项
  3. java 注解继承注解_Java注解合并,注解继承
  4. java datetime now_相当于C#的DateTime.Now在Java中?
  5. Udacity机器人软件工程师课程笔记(三十五) - SLAM - 基于网格的FastSLAM
  6. 原生JS修改html内容不影响绑定的点击事件 请认准insertAdjacentHTML、insertAdjacentText方法
  7. VSCode如何自动换行,右侧换行间距长度,隐藏右侧代码预览(Minimap代码缩略图滚动条),比对代码差异窗口也自动换行
  8. Ubuntu18.04 误删/usr/bin/python3的解决方案
  9. ARM 的几个重要特点
  10. 递归/回溯:八皇后问题N-Queens