記事ディレクトリ
1. コーディングフローチャート
2. 関連モジュールと機能
2.1 エンコーダ関連API
avcodec_find_encoder: エンコーダー ID に従ってエンコーダーを検索します。
avcodec_alloc_context3: エンコーダー コンテキストを作成します。
avcodec_open2: エンコーダーを開きます。
2.2 マルチプレクサ関連 API
avformat_alloc_output_context2: 出力フォーマットのマルチプレクサー コンテキストを作成します
。 avformat_new_stream: オーディオおよびビデオ ストリームを作成します。
avcodec_parameters_from_context: エンコーダー コンテキストのパラメーターをオーディオおよびビデオ ストリームのエンコーダー パラメーターにコピーします。 AVCodecParameters avio_open:
出力ファイルを正式に開きます。
avformat_write_header: ヘッダー情報を書き込みます。
av_interleaved_write_frame()、エンコードされた AVPacket をカプセル化し、ファイルを書き込みます。
av_write_trailer: ビデオ終了情報を書き込みます。
2.3 リサンプリング関連の API
swr_alloc_set_opts: リサンプリング構成パラメータを設定し、リサンプラー コンテキストを割り当てます。
swr_init: リサンプリング関連の構成を有効にします。
swr_convert: ビデオ フレームを変換します
。 swr_free: リサンプラー コンテキストを解放します。
注意点
av_packet_alloc によって取得されたデータは stream_index を設定する必要があります。そうでない場合、stream_index はデフォルトの 0 になります。
パケットの pts、dts、および継続時間のタイム ベースは、対応するストリームの time_base に変換する必要があります。
エンコーダー コンテキストのフラグは AV_CODEC_FLAG_GLOBAL_HEADER パラメーターを設定する必要があります。そうしないと、多くのビデオ プレーヤー、特にグローバル ヘッダー情報 (SPS、PPS) をそれぞれのキーではなくエクストラデータ ポインターに置くビデオストリーム パラメーターが再生できなくなります。フレーム