Demuxer解复用原理

本章主要讲解 FFmpeg 里面各种 Demuxer 解复用器的代码实现,例如 flvmp4rtmp,等等。

虽然 FFmpeg 支持各种输入格式,但是他们内部的实现都不一样。不过在 FFmpeg 对这些格式做了统一的封装的,对上层提供了一样的 API 行数。

所以无论是哪种格式,你都能用下面的流程来对其进行 Demuxer(解复用)。

1-1

  1. avformat_alloc_context() 申请容器上下文的实例
  2. avformat_open_input() 打开输入源
  3. avformat_find_stream_info() 提取流的信息。
  4. av_read_frame() 读取 AVPacket,这个 AVPacket 后面会送给解码器。

TODO:上面这些东西,应该加上超链接的。


本章主要讲解上面这些统一 API 函数的内部实现,以及 flvmp4 等等 各个 Demuxer 的内部实现。

通过本章的内容,你最终可以自己实现一个 Demuxer


本章节大部分的文章是基于下面这条命令讲解的,所以你可以参考《用Ubuntu18与clion调试FFmpeg》搭建好调试环境,单步调试来理解本章的内容。

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

版权所属 xianwanzhiyin.net 罗上文 2023 all right reserved,powered by Gitbook该文件修订时间: 2023-06-09 23:36:51

results matching ""

    No results matching ""