- FFmpeg に WHIP(WebRTC-HTTP Ingestion Protocol)muxer が正式に追加され、1秒未満の超低遅延ストリーミングを直接サポート
- 今回のコミットでは WHIP muxer の命名と構造が再編され、SSL/DTLS/RTC のエラーメッセージとログが改善
- DTLS の曲線/プロファイル、RTP payload、ICE STUN など主要なプロトコルパラメータが Chrome の定義に合わせて更新され、マジックナンバーがマクロおよび関数として切り出された
- DTLS ハンドシェイクと ICE 処理が1つの関数に統合・最適化され、性能と安定性が大きく向上
- 音声・映像のトランスコード(h264_mp4toannexb、OPUS timestamp、マーカー設定など)のバグが修正され、標準的な WebRTC 環境との互換性が向上
- OpenSSL 依存関係が明確化され、DTLS 対応時にのみ WHIP がビルドされるようになった
- FFmpeg だけで WebRTC ベースの配信・リアルタイムストリーム環境を構築しやすくなり、既存の RTMP などのレガシープロトコルに比べて超低遅延の特性を活用できるようになった
avformat/whip: FFmpeg WHIP muxer 対応を追加
主な変更点の要約
- WHIP Version 3 ベースの muxer を正式導入し、内部名称と構造を整理
- SSL、DTLS、RTC の ログコンテキストとエラーメッセージがより明確に
- ハードコードされた マジックナンバーをマクロと別関数に切り出し、保守性を強化
- DTLS の曲線リスト、SRTP プロファイル名などを FFmpeg と OpenSSL の標準に合わせて修正
- ICE STUN マジックナンバー、RTP ペイロードタイプを Chrome ブラウザ標準と一致するよう更新
- 音声フレームサイズ、H.264 MP4→AnnexB 変換、OPUS タイムスタンプなど メディア処理の課題を解決
- DTLS ハンドシェイクと ICE 処理ロジックを 単一関数に統合し、管理しやすくした
- OpenSSL ベースの DTLS 対応条件が明確になり、ビルドエラーと互換性を改善
- SRTP、BIO コールバック、CA キー/証明書初期化など TLS/DTLS 内部構造を統合
whip.c ファイル新設など 全13ファイルを変更・追加
背景と意味
- WHIP は WebRTC ベースのストリーム送出のための HTTP ベース標準プロトコルであり、超低遅延のライブ配信に不可欠
- これまで FFmpeg での WebRTC エンコード・送出には別ツールや複雑な中継が必要だったが、今回のマージにより FFmpeg 単一コマンドでの WHIP 送出が可能になった
- リアルタイム配信、ライブコマース、ビデオ会議などさまざまな分野で、最新の WebRTC エコシステムと直接連携できる技術的な転換点
1件のコメント
Hacker Newsの意見
--without-whipのように不要ならビルドから完全に外せるオプションを選べるのかという質問。そうできれば最良だという意見./configureオプションを見つけにくいという嘆き--enable-muxer=whipと--enable-opensslだという案内