FFmpeg 0.63核心架构分析
FFmpeg 的结构挺有意思的,六大核心库分工明确,谁负责什么一目了然。像libavformat
搞封装、libavcodec
管解码,libavutil
就像是工具箱,都是老朋友了。还有libswscale
和libavfilter
,一个调色调比例,一个玩特效滤镜,视频这些事它们都能干。
用Visual C++ 2008
配Intel C++ Compiler
搞编译也挺有年代感的,不过为支持C99
倒是个不错的选择。版本上的是0.63
,但也提到了特定的SVN
分支,像ffmpeg-git-a304071-branch
,细节蛮到位的。
ffmpeg、ffserver和ffplay这三兄弟,一个干转换、一个搞流媒体、一个做播放器,各有分工。你不用关心它们的源码,重点还是搞清楚各个库是怎么协作的。
如果你搞过DirectShow
或者GStreamer
,你会觉得FFmpeg
的思路还蛮像的——各种组件接起来像流水线一样音视频。虽然实现方式不同,但逻辑挺通的。
,如果你要深挖FFmpeg
,不光是用命令行转个格式,还是得明白它的模块划分和数据流走向。不然一堆.c
和.h
文件看着也挺头大的。
如果你准备开发自己的播放器、流媒体服务,或者想自己撸一套转码服务,那了解这些库的功能和结构就挺关键的了。别跳过基础概念,后面文件结构时你会轻松不少。
1.4MB
文件大小:
评论区