ffmpeg的av_read_frame杂记 冷不防 2022-05-10 03:58 65阅读 0赞 **av\_read\_frame在ffmpeg内部包含两个层次的读:** 1. 解封装的读,根据封装协议如flv或者mp4,调用相关注册接口(AVInputFormat结构的回调函数), 其返回的是一个AVPacket结构; 2. 解协议的读,根据网络传输协议如http或rtmp或ykstream,调用相关注册接口(URLProtocol),其返还的是一个size大小的buf; 3. 这两层读的中间,就包含了一层avio的调用; **ffmpeg read flow:** demuxer: flv\_read\_packet ==> avio: avio\_rxx ==> URLContext: ffurl\_read ==> protocol: rtmpe, http **avio总结:** avio在ffmpeg中,相当于一个中间缓冲数据层,解复用的接口调用avio,avio则调用具体协议的(如http,rtmp)接口读写数据; avio的具体使用和作用,可参考avio.h的注释说明 **ffmpeg的回调中断函数:** 在ffmpeg初始化的时候,可以注册一个中断回调函数: 如果设置此函数返回值为1,则av\_read\_frame函数会中断处理,立即返回; 如果设置此函数返回值为0,则无其他影响; **av\_read\_frame调用函数分析:** **1. 第一次调用av\_read\_frame,注册文件名为XXXEXTM3U,对应read\_packet函数为xxpl\_read\_packet** **2. 在xxpl\_read\_packet中,第二次调用av\_read\_frame,对应的read\_packet函数为flv\_read\_packet** -------------------- av\_read\_frame ff\_read\_packet s->iformat->read\_packet xxpl\_read\_packet av\_read\_frame ff\_read\_packet s->iformat->read\_packet (utils.c) flv\_read\_packet (flvdec.c) av\_read\_frame avio\_seek (| avio\_r8) fill\_buffer (aviobuf.c) read\_packet read\_packet = xxpl\_read\_packet ffurl\_read (avio.c) retry\_transfer\_wrapper(h, buf, size, 1, h->prot->url\_read); url\_read = rtmp\_read (rtmpeproto.c) get\_packet (rtmpeproto.c) ff\_rtmp\_packet\_read (rtmppkt.c) ff\_rtmp\_packet\_read\_internal ffurl\_read (avio.c) rtmp\_packet\_read\_one\_chunk ffurl\_read\_complete | ffurl\_read retry\_transfer\_wrapper h->prot->url\_read avio\_r8 fill\_buffer (aviobuf.c) read\_packet read\_packet = tcp\_read
相关 杂记---- 文章目录 1. echo命令特性 2. msf 3. 劫持explorer.exe黑屏 4. 影子账户 5. 烂土豆提权 6. mim 拼搏现实的明天。/ 2022年11月20日 08:20/ 0 赞/ 678 阅读
相关 杂记 Google镜像: [https://github.com/greatfire/wiki][https_github.com_greatfire_wiki] 谁借莪1个温暖的怀抱¢/ 2022年09月28日 13:24/ 0 赞/ 256 阅读
相关 杂记 人生,也是游戏,鼓起勇气玩这游戏。 看到额头的岁月痕迹,不禁心寒。从现在开始,要让自己开心,灵活巧妙的应对人生的挑战———— 序,先和后的关系。复杂的事情,如果掌握好序,其 柔情只为你懂/ 2022年06月01日 02:13/ 0 赞/ 225 阅读
相关 杂记 7月7日。 \-------------------------------------------------------------- 距离刚开始学爬虫,已经近一个 小灰灰/ 2022年05月21日 13:16/ 0 赞/ 248 阅读
相关 杂记 ^位置): ![734212-20190329100618019-44678809.jpg][] 一些收藏: 蔚落/ 2021年09月29日 10:14/ 0 赞/ 374 阅读
还没有评论,来说两句吧...