StreamIdxToSourceIdx

FFmpeg音视频开发中的Extractor中获取Streamidx如何对应到sourceidx的

在streamidx对应到sourceidx 这一步中,步骤如下:

  1. 通过Extractor.countTracks方法获得媒体文件的轨道数量。
  2. 判断每个轨道的MIME类型是否是向MediaSource.Array中所指定的MIME类型,比如audio /mp4或者video /avc.
  3. 找出类型匹配的轨道,获取它们在Extractor中的位置,例如streamidx。
  4. 根据streamidx到MediaSource.Array中获取它们所在位置,也就是sourceidx。

在FFmpeg的Extractor中,可以通过调用av_find_best_stream函数获取媒体文件中最佳的流。这个函数会返回一个流的索引值(Streamidx),但是这个索引值并不是对应于原始媒体文件中的流的索引值(Sourceidx)。为了将Streamidx转换为Sourceidx,可以通过遍历AVFormatContext中的streams数组来找到对应的流。在遍历过程中,可以通过比较AVStream结构体中的ID值来找到对应的流。找到对应的流之后,就可以获取到该流的Sourceidx值了。
https://cool-js.com/