【FFmpeg】如何通过url的格式找到对应的协议,以rtmp为例
生活随笔
收集整理的這篇文章主要介紹了
【FFmpeg】如何通过url的格式找到对应的协议,以rtmp为例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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为例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Qt】报错error: undefin
- 下一篇: 【FFmpeg】如何通过字符串到对应的封