BMF (Babit Multimedia Framework) ist ein plattformübergreifendes, multisprachiges, anpassbares Multimedia-Verarbeitungsrahmen, das von Bytedance entwickelt wurde. Mit über 4 Jahren Tests und Verbesserungen wurde BMF darauf zugeschnitten, die Herausforderungen in unseren realen Produktionsumgebungen ahnungslos zu bewältigen. Derzeit wird es in Bytedance's Video Streaming, Live Transcoding, Cloud -Bearbeitung und mobilen Szenarien vor/postverarbeitung verwendet. Mehr als 2 Milliarden Videos werden jeden Tag vom Framework verarbeitet.
Hier sind einige wichtige Funktionen von BMF:
Übertragende Unterstützung: Native Kompatibilität mit Linux, Windows und Mac OS sowie Optimierung sowohl für X86- als auch für ARM-CPUs.
Einfach zu bedienen: BMF bietet Python-, GO- und C ++ - APIs und ermöglicht den Entwicklern die Flexibilität, in ihren Lieblingssprachen zu codieren.
Anpassungsfähigkeit: Entwickler können die Funktionen des Frameworks verbessern, indem sie aufgrund der entkoppelten Architektur von BMF ihre eigenen Module unabhängig hinzufügen.
Hohe Leistung: BMF hat einen leistungsstarken Scheduler und eine starke Unterstützung für heterogene Beschleunigungshardware. Darüber hinaus hat NVIDIA mit uns zusammengearbeitet, um eine hoch optimierte GPU -Pipeline für Video -Transcodierung und KI -Inferenz zu entwickeln.
Effiziente Datenkonvertierung: BMF bietet nahtlose Datenformatkonvertierungen in beliebten Frameworks (FFMPEG/Numpy/Pytorch/OpenCV/Tensorrt), Konvertierung zwischen Hardware -Geräten (CPU/GPU) sowie Farbraum und Pixel -Formatkonvertierung.
BMFLITE ist ein clientseitiges plattformübergreifender, leichter und effizienterer multimedia-Verarbeitungsrahmen. Bisher wird der BMFLite-Client-Seite-Algorithmus in Apps wie Douyin/Xigua verwendet, die mehr als eine Milliarde Benutzer im Live-Streaming/Video-Spielen/Bilder/Cloud-Spiele und anderen Szenarien bedienen und Videos und Bilder verarbeiten, die jeden Tag Billionen Male Billionen Male verarbeiten .
Tauchen Sie tiefer in die Funktionen von BMF auf unserer Website, um weitere Informationen zu erhalten.
In diesem Abschnitt werden wir die Funktionen des BMF-Frameworks in sechs Dimensionen direkt vorstellen: Transcode , Bearbeiten , Besprechung/Sender , GPU-Beschleunigung , AI-Inferenz und clientseitige Framework . Für alle nachstehend bereitgestellten Demos sind entsprechende Implementierungen und Dokumentationen in Google Colab verfügbar, sodass Sie sie intuitiv erleben können.
Diese Demo beschreibt Schritt für Schritt, wie BMF verwendet wird, um ein Transkodierprogramm zu entwickeln, das Video-Transkodieren, Audio-Transkodierung und Bildtranscodierung. Darin können Sie sich mit der Verwendung von BMF und der Verwendung von FFMPEG-kompatiblen Optionen vertraut machen, um die benötigten Funktionen zu erreichen.
Wenn Sie ein kurzes Experiment durchführen möchten, können Sie es anprobieren
Die Bearbeitungs-Demo zeigt Ihnen, wie Sie eine Hochkomplexitäts-Audio- und Videobearbeitungspipeline über das BMF-Framework implementieren. Wir haben zwei Python -Module implementiert, Video_Concat und Video_Overlay und kombiniert verschiedene Atomfunktionen, um ein komplexes BMF -Diagramm zu erstellen.
Wenn Sie ein kurzes Experiment durchführen möchten, können Sie es anprobieren
Diese Demo verwendet das BMF -Framework, um einen einfachen Broadcast -Dienst zu erstellen. Der Dienst bietet eine API, mit der dynamisches Video -Quellen -Ziehen, Video -Layout -Steuerung, Audio -Mischung und letztendlich die Ausgabe auf einen RTMP -Server gestreamt werden können. Diese Demo zeigt die Modularität von BMF, mehrsprachige Entwicklung und die Fähigkeit, die Pipeline dynamisch anzupassen.
Im Folgenden finden Sie eine Bildschirmaufzeichnung, die den Betrieb des Senders demonstriert:

Die Demo der Videokrahmenextraktionsbeschleunigung zeigt:
BMF flexible Fähigkeit von:
Hardwarebeschleunigung schnell und CPU/GPU -Pipeline -Unterstützung
Wenn Sie ein kurzes Experiment durchführen möchten, können Sie es anprobieren
Die Demo der GPU -Transkodier- und Filtermodul zeigt:
Die Demo erstellt eine Transcodierungspipeline, die vollständig auf GPU ausgeführt wird:
decodode-> scaste-> flip-> rotate-> crop-> Blur-> codieren
Wenn Sie ein kurzes Experiment durchführen möchten, können Sie es anprobieren
Der Prototyp, wie eine Videovorverarbeitung für LLM -Trainingsdaten in Bytedance erstellt wird, das täglich Milliarden der Clip -Verarbeitung serviert.
Das Eingabevideo wird gemäß den Szenenänderungen aufgeteilt, und Untertitel im Video werden vom OCR -Modul erkannt und beschnitten, und die Videoqualität wird durch das bmf -bereitgestellte ästhetische Modul bewertet. Danach werden die endgültigen Videoclips als Ausgabe codiert.
Wenn Sie ein kurzes Experiment durchführen möchten, können Sie es anprobieren
Diese Demo zeigt, wie die Stand der Kunst -AI -Algorithmen in die BMF -Videoverarbeitungspipeline integriert werden. Der berühmte Open -Source -Colorization -Algorithmus entspannte als BMF -Pyhton -Modul in weniger als 100 Zeilen von Codes. Der endgültige Effekt wird unten dargestellt, wobei das Originalvideo auf der linken Seite und das farbige Video rechts.
Wenn Sie ein kurzes Experiment durchführen möchten, können Sie es anprobieren

Diese Demo implementiert den Superauflösungs-Inferenzprozess von Real-ESRgan als BMF-Modul und zeigt eine BMF-Pipeline, die Decodierung, Superauflösungsinferenz und Codierung kombiniert.
Wenn Sie ein kurzes Experiment durchführen möchten, können Sie es anprobieren
Diese Demo zeigt, wie Sie unser ästhetisches Bewertungsmodell mit BMF aufrufen. Unser Deep -Learning -Modell Aesmode hat eine binäre Klassifizierungsgenauigkeit von 83,8% im AVA -Datensatz erreicht, wobei er den akademischen SOTA -Niveau erreicht hat, und kann direkt verwendet werden, um den ästhetischen Grad der Videos mithilfe der Rahmenextraktionsverarbeitung zu bewerten.
Wenn Sie ein kurzes Experiment durchführen möchten, können Sie es anprobieren
Diese Demo zeigt eine auf Tensorrt-Beschleunigung basierende Vollverbindungspipeline, die das TensorRt-Accelerated ONNX-Modell intern verwendet, um das Eingabevideo zu verarbeiten. Es verwendet den NMS -Algorithmus, um wiederholte Kandidatenboxen zu filtern, um eine Ausgabe zu bilden, mit der eine Gesichtserkennungsaufgabe effizient verarbeitet werden kann.
Wenn Sie ein kurzes Experiment durchführen möchten, können Sie es anprobieren
Dieser Fall zeigt die Verfahren zur Integration eines externen Algorithmusmoduls in das BMFLite -Framework und die Verwaltung seiner Ausführung.

Dieses Beispiel implementiert den Denoise -Algorithmus als BMF -Modul und zeigt eine BMF -Pipeline, die die Videoaufnahme, Rauschreduzierung und -wiedergabe kombiniert.

Über BMF
Schnelle Erfahrung
Erste Schritte
Synchronisierungsmodus mit 3 Sprachen. Sie können es ausprobieren:
Python: C ++: Go:
Mehrere Merkmale (mit Beispielen)
Apis
Lizenz
Beitragen
Das Projekt hat eine Apache 2.0 -Lizenz. Komponenten und Abhängigkeiten von Drittanbietern bleiben unter ihren eigenen Lizenzen.
Beiträge sind begrüßt. Bitte befolgen Sie die Richtlinien.
Wir verwenden GitHub -Probleme, um Probleme zu verfolgen und zu lösen. Wenn Sie Fragen haben, können Sie sich der Diskussion anschließen und mit uns zusammenarbeiten, um eine Lösung zu finden.
Das Decoder-, Encoder- und Filterreferenz -FFMPEG CMDLINE -Tool. Sie werden als integrierte Module von BMF unter der LGPL-Lizenz verpackt.
Das Projekt lässt sich auch von anderen beliebten Frameworks wie FFMPEG-Python und MediaPipe inspirieren. Unsere Website nutzt das Projekt von Docsy basierend auf Hugo.
Hier möchten wir uns dank der Entwickler der oben genannten Projekte aufrichtig ausdrücken!