FFMPEG:如何将输入数据馈送到解码器

时间:2014-02-12 11:49:29

标签: video ffmpeg libavcodec

在FFMPEG中,集成了许多视频解码器。其中一个是H264。现在,在FFMPEG中,解码器的哪一部分负责向解码器提供必要的输入数据,以便解码它?

我已经完成了解码器的大部分代码,但我无法找到任何事情的发生地点。

我所知道的是,FFMPEG源的file.c目录中有一个名为libavutils的文件。在此文件中使用了read()函数。但是,如何将h.264解码器传送给ffmpeg来发送一些数据进行解码。

关于这一点的任何指针对我都非常有帮助。请提供宝贵的建议。

提前致谢。

1 个答案:

答案 0 :(得分:2)

ffmpeg由几个库组成。您已经提到的libavutil,此库提供对从文件或网络读取数据的低级访问。接下来,数据由libavformat处理。该库知道如何读取可能不同的容器格式和协议(mp4,mkv,rtmp等),并提取AVPacket结构中的各个帧。然后将每个AVPacket提供给解码器,该解码器是libavcodec的一部分。