Read OSS

FFmpeg/FFmpeg

6 articles

前提知識

01

FFmpeg ソースコード:アーキテクチャ概観と200万行のCコードを読み解く方法

FFmpeg リポジトリの包括的な入門ガイド。7つのコアライブラリ、3つのCLIツール、ライブラリの依存階層、ビルドパイプライン、コンポーネント登録の仕組み、public/privateの構造体分離パターンを解説します。

02

FFmpegのコアデータ構造:AVFrame、AVPacket、AVBuffer、そしてAVClassシステム

AVBufferの参照カウントシステム、AVClassによるリフレクション機構、コーデックのコールバックディスパッチなど、FFmpegエコシステム全体の『共通言語』として機能する基本データ型を深く掘り下げます。

03

libavcodec と libavformat の内部構造:FFmpeg のデコード・エンコード・Mux・Demux の仕組み

libavcodec の send/receive API を通じたデコード・エンコードの処理経路、libavformat における demux・mux のライフサイクル、I/O プロトコルスタック、ハードウェアアクセラレーションコンテキストを詳しく解説します。

04

ffmpeg トランスコーディングパイプライン:Scheduler のアーキテクチャとスレッド制御

ffmpeg CLI ツールのトランスコーディングエンジンを解剖し、デマルチプレクサ・デコーダ・フィルタ・エンコーダ・マルチプレクサを DAG として構築する Scheduler の設計と、各コンポーネントのスレッド管理を詳しく解説します。

05

FFmpegのフィルターグラフエンジン:libavfilterによる音声・映像処理の仕組み

libavfilterサブシステムを解説します。フィルターノードがリンクで接続された有向グラフエンジンとして、音声・映像フレームを処理し、フォーマットネゴシエーション、アクティベーションスケジューリング、トランスコードパイプラインとの統合を実現する仕組みを詳しく説明します。

06

FFmpegのビルド・テスト・コントリビューション: configure、FATE、開発ワークフロー

シリーズの実践的な総仕上げ。ソースからのビルド方法、FATEテストフレームワークの仕組み、学習リソースとしてのサンプルプログラム、そして新しいコーデック・フィルター・フォーマットをコントリビュートする手順を解説します。