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

标签 video ffmpeg libavcodec

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

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

我只知道有一个文件叫做 file.clibavutils FFMPEG 源的目录。在这个文件中使用了一个 read() 函数。但是,h.264 解码器如何将其传送到 ffmpeg 以发送一些数据进行解码。

任何有关相同的指示都会对我很有帮助。请务必提出您的宝贵建议。

提前致谢。

最佳答案

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

关于video - FFMPEG:如何将输入数据馈送到解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21727142/

相关文章:

python - 如何使用OpenCV更改视频中的单个帧?

ios - Xamarin Forms Webview html 视频不在 iOS 设备上播放

amazon-web-services - 错误 : ffmpeg exited with code 1 on AWS Lambda

mysql - MySQL 8 上的写入速度非常慢 - 等待处理程序提交

ffmpeg - 在编码时强制自定义 H.264 帧内(关键帧)?

gcc - libavcodec.a(vc1dsp_mmx.o) : relocation R_X86_64_PC32 against symbol `ff_pw_9'

video - 为什么 libavcodec 只能提供时间戳的估计值?

java - ffmpeg H264字节流到图像或视频文件[Java]

c++ - 如何使用 avformat_open_input 函数 (ffmpeg)

bash - 如何使用 ffmpeg 将 1,000,000 张 gif 图片转换为视频文件