音视频开发-ffmpeg如何将输入文件分成多个输入流?具体是如何实现的?

发布于 2016-12-23 23:29:33 字数 189 浏览 1361 评论 1

在ffmpeg中,输入文件对应的结构体是InputFile而输入流对应的结构体是InputStream,,在ffmpeg中一个输入文件会对应多个输入流,那么输入流划分的依据是什么?又是如何划分的(求代码段),以及为什么要将输入文件和输入流分开保存?而不是直接去处理输入文件?是因为一个输入文件中有视频、音频、字幕所以将这三者分开么?输入流还会不会被分的更细的粒度?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清晨说ぺ晚安 2017-01-17 17:05:38

在ffmpeg中,输入文件是以数组形式组织起来,放在input_files数组中的;而每个输入文件又对应多个输入流,在每个输入流结构体AVInputStream中有成员变量file_index去标识每个输入流所属的输入文件,相应的输入文件结构体中也有成员变量,用以标识这个输入文件对应的输入流在输入流数组input_streams的起始位置和输入流的个数;
在ffmpeg中输入文件分流是通过demuxer进行的,而demuxer在ffmpeg中又是通过AVInputFormat实现的,提供的接口;因此可以认为ffmpeg先通过输入文件后缀名找到匹配的demuxer,然后利用demuxer对输入文件中的数据进行分流,我们现在知道一种分流方式,即最简单的将多媒体数据文件分成音频流,视频流和字幕流;但是还有没有其他的分流方式还有待研究。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文