avformat_open_input打开不是已经获取流信息了吗,为什么还要调用avformat_find_stream_info

avformat_open_input 函数打开一个输入媒体文件,并且在成功打开后,并不会自动获取流信息。虽然函数本身会打开文件并读取一些基本的头信息,但实际的媒体流信息(如视频、音频等)并没有被解析。

avformat_find_stream_info 函数的作用是解析媒体文件的流信息。在调用该函数之后,FFmpeg 库会解析文件中的各个流,并将相应的信息填充到 AVFormatContext 结构体中。

通常情况下,你在打开媒体文件后,需要调用 avformat_find_stream_info 来获取完整的媒体流信息,包括每个流的参数、时长、帧率等。这是因为媒体文件的头信息可能并没有包含完整的流信息,而是提供了一些基本的信息。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
avformat_open_input 函数用于打开一个输入文件,并将其解析为一个 AVFormatContext 结构体。该函数会自动检测输入文件的格式,并将相关信息存储在 AVFormatContext 结构体中。该函数的参数包括输入文件名,输入格式,以及其他一些选项。调用该函数后,可以使用 AVFormatContext 结构体中的成员变量来获取文件的信息avformat_find_stream_info 函数用于查找输入文件中的音视频,并将其存储在 AVFormatContext 结构体中。该函数会自动检测输入文件中的音视频,并将相关信息存储在 AVFormatContext 结构体中。调用该函数后,可以使用 AVFormatContext 结构体中的成员变量来获取音视频信息,如的编码格式、分辨率、码率等等。 通常情况下,需要先调用 avformat_open_input 函数打开输入文件,然后再调用 avformat_find_stream_info 函数查找音视频。在查找音视频之前,AVFormatContext 结构体中的很多成员变量都是未知的,例如音视频的数量、编码格式等等。调用 avformat_find_stream_info 函数后,AVFormatContext 结构体中的这些成员变量将被填充,可以通过这些成员变量来获取输入文件的信息。 需要注意的是,avformat_find_stream_info 函数可能需要较长时间来解析输入文件中的音视频,因此在调用该函数之前,可能需要等待一段时间。另外,对于一些格式复杂的输入文件,可能需要多次调用 avformat_find_stream_info 函数来获取所有的音视频信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值