ffmpeg面向对象——AVInputFormat与URLProtocol啥关系

ffmpeg面向对象-rtsp拉流相关对象》和《ffmpeg面向对象------拉流协议匹配机制探索》探索过了输入格式匹配和底层协议匹配,且ffmpeg拉流是先是匹配输入格式------抽象为AVInputFormat类,然后再匹配url协议类------抽象为URLProtocol类。

它们是啥关系?为啥先匹配输入格式再匹配协议类?

前者是应用层协议,比如rtsp,http等,后者是实际协议的底层承载体,比如open,tcp等。

其实还是模块化编程、分层思想。

以rtsp为例。

标准rtsp拉流的是采用tcp传输,那么rtsp协议层实现要和底层传输分离,模块化,各自并行迭代开发,耦合性降低,它们唯一的纽带就是接口------面向接口编程------软件设计5大原则的依赖倒置原则。只要接口不变,各自并行迭代开发前进就行了。

所以标准rtsp拉流协议的实现------不管ffmpeg还是各大公司,都是把应用层协议和底层传输协议分离的,所以ffmpeg把rtsp协议实现放到了rtsp.c中,把tcp放到了tcp.c中------其实以面向对象的思想和规范,各类都是一个个c/cpp文件,看看c++源文件和ffmpeg源文件起名,惊人的一致。

所以对于大型软件,如果追求极致性能,选择c语言开发,那么oopc是所有项目的必选。

相关推荐
侯孟禹18 小时前
ubutun安装ffmpeg
笔记·ffmpeg
rjszcb18 小时前
FFMpeg源码分析,关键结构体分析(一)
ffmpeg
六神就是我1 天前
【音频生成】mac安装ffmpeg
macos·ffmpeg·音视频
柠檬少少开发2 天前
基于matlab的滤波器设计
人工智能·ffmpeg·语音识别
Lorin 洛林3 天前
Python FFmpeg 安装使用教程
开发语言·python·ffmpeg
DuoRuaiMiFa3 天前
Ubuntu上FFmpeg的安装与使用完全指南
linux·ubuntu·ffmpeg
Pfolg3 天前
Python+ffmpeg实现字幕视频合并
python·ffmpeg·开源软件
cuijiecheng20184 天前
音视频入门基础:FLV专题(12)——FFmpeg源码中,解析DOUBLE类型的ScriptDataValue的实现
ffmpeg·音视频
头快撑不住了4 天前
ffmpeg源码分析(七)结构体之AVStream
ffmpeg