【FFmpeg】如何通过url的格式找到对应的协议,以rtmp为例
生活随笔
收集整理的這篇文章主要介紹了
【FFmpeg】如何通过url的格式找到对应的协议,以rtmp为例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、簡述
在使用 avio_open 接口時,只要給形參 filename 傳入 url 格式的字符串就能找到對應的協(xié)議。這篇博客就是追蹤 avio_open 的調用關系,探明如何根據(jù)一個url字符串就能找到對應的協(xié)議。下面以rtmp協(xié)議為例。
2、FFmpeg對rtmp協(xié)議的支持
rtmp協(xié)議的實現(xiàn)源碼在 libavformat/rtmpproto.c 中,如果將 AVClass 和 URLProtocol 結構體看作調用協(xié)議的抽象類或者接口類,要實現(xiàn)對rtmp的支持,就要實現(xiàn)這些接口。rtmpproto.c 中 使用宏 RTMP_PROTOCOL(rtmp) 初始化了這兩個結構體:AVClass rtmp_class 和 URLProtocol ff_rtmp_protocal,以及各個接口的實現(xiàn)。
也就是說,在加載libavformat庫時,rtmp協(xié)議相關功能已經(jīng)初始化,靜等調用。
static const AVClass rtmp_class = {.class_name = rtmp,.item_name
總結
以上是生活随笔為你收集整理的【FFmpeg】如何通过url的格式找到对应的协议,以rtmp为例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Qt】报错error: undefin
- 下一篇: 【FFmpeg】如何通过字符串到对应的封