flv_probe探测FLV格式—FFmpeg源码分析

flv_probe() 函数的作用是探测一段数据,给这段数据打分,越符合 flv 的格式分数就越高。

flv_probe() 是在 av_format_opem_input() 中被调用的,如下:

1-1


读者可以使用下面这条命令调试,配合理解本文的内容。

ffmpeg -i juren-30s.flv out.flv -y

同时在 flv_probe() 函数里面打一个断点,如下:

1-2

首先 flv_probe() 函数的参数 const AVProbeData *p 是需要探测的数据,这个 p 变量的数据是在 av_probe_input_buffer2() 里用 avio_read() 读取出来的,如下:

1-3

probe() 函数内部给数据打分的逻辑非常简单,就判定一个 前面 3 个字节是不是 FLV,然后还有一些其他判定,最后符合就直接返回了 AVPROBE_SCORE_MAX

版权所属 xianwanzhiyin.net 罗上文 2023 all right reserved,powered by Gitbook该文件修订时间: 2023-06-10 00:22:14

results matching ""

    No results matching ""