在FFMPEG中,集成了许多视频解码器。其中一个是H264。现在,在FFMPEG中,解码器的哪一部分负责向解码器提供必要的输入数据,以便解码它?
我已经完成了解码器的大部分代码,但我无法找到任何事情的发生地点。
我所知道的是,FFMPEG源的file.c
目录中有一个名为libavutils
的文件。在此文件中使用了read()函数。但是,如何将h.264解码器传送给ffmpeg来发送一些数据进行解码。
关于这一点的任何指针对我都非常有帮助。请提供宝贵的建议。
提前致谢。
答案 0 :(得分:2)
ffmpeg由几个库组成。您已经提到的libavutil,此库提供对从文件或网络读取数据的低级访问。接下来,数据由libavformat处理。该库知道如何读取可能不同的容器格式和协议(mp4,mkv,rtmp等),并提取AVPacket结构中的各个帧。然后将每个AVPacket提供给解码器,该解码器是libavcodec的一部分。