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是所有项目的必选。

相关推荐
码流怪侠15 小时前
FFmpeg 开发实战全解析:从入门到精通(附完整代码示例)
ffmpeg·音视频开发·视频编码
圆弧YH17 小时前
FFmpeg
ffmpeg
luoqice18 小时前
FLV文件格式详解
ffmpeg
happybasic2 天前
在CMD下使用FFmpeg将.wav文件转换成指定的格式~
ffmpeg
shao9185162 天前
第10章 Streaming(上):初级音频应用(1)——项目三:自建服务器的Mini-Omni实时语音聊天机器人
ffmpeg·whisper·asr·mini-omni·自建语音服务器
Leon_Chenl2 天前
【已开源】【嵌入式 Linux 音视频+ AI 实战项目】瑞芯微 Rockchip 系列 RK3588-基于深度学习的人脸门禁+ IPC 智能安防监控系统
深度学习·opencv·yolo·ffmpeg·音视频·边缘计算·人脸识别+检测
antzou3 天前
视频图片/文字水印
ffmpeg·视频水印·批量水印
AC赳赳老秦4 天前
DBA 专属方案:用 OpenClaw 实现 SQL 语句优化、慢查询分析、数据库备份巡检全自动化
服务器·前端·数据库·ffmpeg·自动化·deepseek·openclaw
小叮当⇔5 天前
M4A 转 MP3 桌面转换器(PyQt5 + FFmpeg)
开发语言·qt·ffmpeg
aovenus8 天前
FFmpeg 官网及文档
ffmpeg