BMF(BABIT Multimedia Framework)は、バイテダンスによって開発されたクロスプラットフォーム、マルチ言語、カスタマイズ可能なマルチメディア処理フレームワークです。 4年以上のテストと改善により、BMFは、実際の生産環境での課題に大いに取り組むように調整されています。現在、Bytedanceのビデオストリーミング、ライブトランスコーディング、クラウド編集、モバイルプリ/後処理シナリオで広く使用されています。毎日20億以上のビデオがフレームワークによって処理されています。
BMFの重要な機能は次のとおりです。
クロスプラットフォームサポート: Linux、Windows、Mac OSとのネイティブ互換性、およびX86とARM CPUの両方の最適化。
使いやすい: BMFはPython、Go、およびC ++ APIを提供し、開発者がお気に入りの言語でコーディングできる柔軟性を提供します。
カスタマイズ可能性:開発者は、BMF分離アーキテクチャのために独自のモジュールを個別に追加することにより、フレームワークの機能を強化できます。
高性能: BMFには、強力なスケジューラと不均一な加速ハードウェアに対する強力なサポートがあります。さらに、 Nvidiaは、ビデオトランスコーディングとAI推論のために高度に最適化されたGPUパイプラインを開発するために協力してきました。
効率的なデータ変換: BMFは、一般的なフレームワーク(FFMPEG/numpy/pytorch/opencv/tensort)全体でシームレスなデータ形式変換を提供し、ハードウェアデバイス(CPU/GPU)間の変換、および色空間とピクセル形式の形式変換を提供します。
BMfliteは、クライアント側のクロスプラットフォームで、軽量で、より効率的なクライアント側のマルチメディア処理フレームワークです。これまでのところ、Bmfliteクライアント側のアルゴリズムはDouyin/Xiguaなどのアプリで使用されており、ライブストリーミング/ビデオプレイ/写真/クラウドゲームやその他のシナリオや、毎日何兆回も処理された数十億ユーザーにサービスを提供しています。 。
詳細については、当社のWebサイトでBMFの機能をさらに深く掘り下げてください。
このセクションでは、トランスコード、編集、会議/放送局、 GPUアクセラレーション、 AI推論、クライアント側のフレームワークの6つの次元をめぐるBMFフレームワークの機能を直接紹介します。以下に示されているすべてのデモについて、Google Colabで対応する実装とドキュメントが利用可能であるため、直感的に体験できます。
このデモでは、BMFを使用してビデオトランスコーディング、オーディオトランスコーディング、画像トランスコーディングなどのトランスコーディングプログラムを開発する方法について説明します。その中で、BMFの使用方法と、必要な機能を実現するためにFFMPEG互換オプションを使用する方法に慣れることができます。
簡単な実験をしたい場合は、試してみることができます
編集デモでは、BMFフレームワークを介して高複雑さのオーディオおよびビデオ編集パイプラインを実装する方法を示します。 2つのPythonモジュール、Video_ConcatとVideo_Overlayを実装し、さまざまなアトミック機能を組み合わせて複雑なBMFグラフを構築しました。
簡単な実験をしたい場合は、試してみることができます
このデモは、BMFフレームワークを使用して、簡単なブロードキャストサービスを構築します。このサービスは、動的なビデオソースのプル、ビデオレイアウトコントロール、オーディオミキシング、および最終的に出力をRTMPサーバーにストリーミングできるAPIを提供します。このデモは、BMFのモジュール性、多言語開発、およびパイプラインを動的に調整する機能を紹介します。
以下は、放送局の操作を示す画面録音です。

ビデオフレーム抽出アクセラレーションデモが表示されます。
BMFの柔軟な機能:
ハードウェアアクセラレーション迅速なイネーブルメントとCPU/GPUパイプラインサポート
簡単な実験をしたい場合は、試してみることができます
GPUトランスコーディングおよびフィルターモジュールデモが表示されます。
デモは、GPUで完全に実行されるトランスコーディングパイプラインを構築します。
decode-> scale-> flip-> rotate-> crop-> blur-> encode
簡単な実験をしたい場合は、試してみることができます
毎日数十億のクリップ処理を提供するBytedanceでLLMトレーニングデータ向けのビデオ前処理を構築する方法のプロトタイプ。
入力ビデオはシーンの変更に応じて分割され、ビデオの字幕はOCRモジュールによって検出およびトリミングされ、ビデオ品質は審美的モジュールを提供するBMFによって評価されます。その後、最終的なビデオクリップは出力としてエンコードされます。
簡単な実験をしたい場合は、試してみることができます
このデモは、ART AIアルゴリズムをBMFビデオ処理パイプラインに統合する方法を示しています。有名なオープンソースカラー化アルゴリズムDeoldifyは、100行未満のコードでBMF Pyhtonモジュールとして包まれています。最終的な効果を以下に示します。左側に元のビデオが、右側に色付きのビデオがあります。
簡単な実験をしたい場合は、試してみることができます

このデモは、Real-EsrganのBMFモジュールとしての超解像度の推論プロセスを実装し、デコード、超解像度の推論、およびエンコードを組み合わせたBMFパイプラインを紹介します。
簡単な実験をしたい場合は、試してみることができます
このデモは、BMFを使用して美的評価モデルを呼び出す方法を示しています。 Deep Learning Model Aesmodeは、AVAデータセットで83.8%のバイナリ分類精度を達成し、アカデミックソタのレベルに達し、フレーム抽出処理によって審美的な程度のビデオを評価するために直接使用できます。
簡単な実験をしたい場合は、試してみることができます
このデモは、Tensortの加速度に基づいてフルリンクの顔を検出するパイプラインを示しています。これは、Tensort-Accelerated OnNXモデルを内部的に使用して入力ビデオを処理します。 NMSアルゴリズムを使用して、繰り返される候補ボックスをフィルタリングして出力を形成します。これは、フェイス検出タスクを効率的に処理するために使用できます。
簡単な実験をしたい場合は、試してみることができます
このケースは、外部アルゴリズムモジュールをBMFliteフレームワークに統合し、その実行の管理を統合する手順を示しています。

この例では、DenoiseアルゴリズムをBMFモジュールとして実装し、ビデオキャプチャ、ノイズの低減、レンダリングを組み合わせたBMFパイプラインを紹介します。

BMFについて
簡単な体験
はじめる
3つの言語と同期モード。あなたはそれを試すことができます:
Python:c ++:go:
複数の機能(例があります)
API
ライセンス
貢献
プロジェクトにはApache 2.0ライセンスがあります。サードパーティのコンポーネントと依存関係は、独自のライセンスの下にあります。
貢献は歓迎されます。ガイドラインに従ってください。
GitHubの問題を使用して、問題を追跡および解決します。ご質問がある場合は、お気軽にディスカッションに参加し、解決策を見つけるために私たちと協力してください。
デコーダー、エンコーダー、およびフィルター参照FFMPEG CMDLINEツール。これらは、LGPLライセンスの下でBMFの組み込みモジュールとしてラップされています。
このプロジェクトは、FFMPEG-PythonやMediapipeなど、他の人気のあるフレームワークからもインスピレーションを得ています。当社のウェブサイトは、Hugoに基づいてDocsyのプロジェクトを使用しています。
ここでは、上記のプロジェクトの開発者に心から感謝します!