avformat_find_stream_info获取流信息之设置duration—FFmpeg源码分析

回顾之前的文章《FFmpeg打开输入文件》,对于 mp4 文件, avformat_open_input 函数执行完之后,ic->duration 就有值了。但是对于 flv 文件,必须要调 avformat_find_stream_info() 之后,ic->duration 才能有值。

而且 flvic->nb_streams 也是在 avformat_find_stream_info() 之后才会有值。

本文主要分析,在输入文件为 FLV 的场景里,avformat_find_stream_info() 函数内部是从哪里读取到文件时长(duration)的 以及 创建 stream 的,如下:

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

请参考《用Ubuntu18与clion调试FFmpeg》搭建好调试环境,juren-30s.flvGitHub 里面有的,请自行下载。


还是老套路,直接在 gdb 控制台输入命令来监控 duration 变量,如下:

watcho *0x555

1-1


以下是 VIP会员 专属内容,点击购买 FFmpeg原理VIP版

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

results matching ""

    No results matching ""