BlueCaster

Bluetooth-A2DP-Audiostreaming für Windows mit voller Codec-Unterstützung.

Macht aus einem gewöhnlichen Bluetooth-Adapter – einem günstigen USB-Stick oder bei vielen Laptops dem eingebauten – statt der einfachen Codecs von Windows einen Hi-Fi-Sender: LHDC V5, LDAC und aptX Adaptive mit bis zu 96 kHz (LHDC V5 bis 192 kHz), dazu aptX HD, aptX, aptX Low Latency, Opus, AAC, SBC XQ, SBC und FastStream sowie LE Audio (LC3). BlueCaster richtet den Adapter selbst ein und gibt ihn mit einem Klick an Windows zurück (so funktioniert es).

BlueCaster's Codecs screen, streaming LDAC 990 kbps / 48 kHz to Sony WH-1000XM4

Erste Schritte GitHub


Unterstützte Codecs

Codec Bitrate Abtastrate Bittiefe Latenz
LHDC V5 400/500/900/1000 kbps, ABR 160–400 kbps 44,1/48/96/192 kHz 16/24 Bit –
LDAC 330/660/990 kbps 44,1–96 kHz 16/24/32 Bit ~200 ms
aptX Adaptive 265/427 kbps (96 kHz: 646) 48/96 kHz 24 Bit –
Opus 256 kbps 48 kHz 16 Bit –
aptX HD 576 kbps 44,1/48 kHz 24 Bit ~150 ms
aptX 352/384 kbps 44,1/48 kHz 16 Bit –
aptX Low Latency 352 kbps 44,1/48 kHz 16 Bit ~32 ms
AAC bis 256 kbps 44,1/48 kHz 16 Bit ~150 ms
SBC XQ ca. 385/505/552 kbps 44,1/48 kHz 16 Bit ~150 ms
SBC bis ca. 345 kbps 44,1/48 kHz 16 Bit ~150 ms
FastStream 198/216 kbps 44,1/48 kHz 16 Bit –
Opus 05 256 kbps 48 kHz 16 Bit –
LC3 (LE Audio) 32–124 kbps pro Kanal 16/24/32/48 kHz 16 Bit ~140 ms
LC3 Low Latency (LE Audio GMAP) 64–96 kbps pro Kanal 32/48 kHz 16 Bit ~30 ms

Codec-Unterstützung nach Plattform (Senden an Kopfhörer)

Codec Windows 10 integriert Windows 11 integriert Ubuntu integriert (PipeWire) BlueCaster (Windows 10 / 11)
LHDC V5 ❌ ❌ ❌ ✅
LDAC ❌ ❌ ✅ ✅
aptX Adaptive ❌ ❌ ❌ ✅
Opus (A2DP Opus von Android) ❌ ❌ ✅ PipeWire 1.2+ (opus_g); nicht in Ubuntu 24.04 (PipeWire 1.0.5) ✅
aptX HD ❌ ❌ ✅ ✅
aptX ✅ ✅ ✅ ✅
aptX Low Latency ❌ ❌ ✅ ✅
AAC ❌ ✅ ❌ nicht in den Ubuntu-Paketen ✅
SBC XQ ❌ ❌ ✅ ✅ (Empfänger, deren SBC Dual Channel und Bitpool ≥ 29 erlaubt)
SBC ✅ ✅ ✅ ✅
FastStream ❌ ❌ ✅ ✅ (nur Musik, nur bei ausdrücklicher Wahl)
Opus 05 (PipeWires eigenes Opus) ❌ ❌ ✅ PipeWire 0.3.57+ (opus_05, nur zu PipeWire-Geräten) ✅ (nur bei ausdrücklicher Wahl, nur im Entwicklermodus)
LC3 (LE Audio, BAP Unicast) ❌ ✅ auf PCs, deren Bluetooth-Hardware und -Treiber LE Audio unterstützen ✅ PipeWire BAP lc3 (LE Audio von BlueZ) ✅ (LE-Audio-Eintrag eines Geräts; GMAP mit niedriger Latenz bei Gaming-Headsets; Adapter mit Bluetooth 5.2 und ISO, Verwendung)

✅ unterstützt · ❌ nicht unterstützt. Alle Spalten beziehen sich auf die Sendeseite (PC → Kopfhörer). „Integriert“ ist das Bluetooth-Audio des Betriebssystems selbst, ohne BlueCaster; die Ubuntu-Spalte ist der PipeWire-Codec-Umfang von Ubuntu 26.04 (libspa-0.2-bluetooth).

aptX HD und aptX Low Latency folgen den Implementierungen von Android / PipeWire und bestehen Round-Trip-Tests (Kodieren/Dekodieren), wurden aber noch nicht mit echten Kopfhörern geprüft. Die Latenzwerte in dieser Tabelle sind typische Angaben, nicht mit BlueCaster gemessen.

Zu LHDC V5. Verwendet wird eine C-Portierung des LHDC-V5-Encoders, den Google in Android 17 aufgenommen hat (AOSP, Apache-2.0); die Portierung wurde bitgenau gegen den Rust-Encoder aus AOSP geprüft, und die A2DP-Signalisierung folgt Androids a2dp_vendor_lhdcv5. Ein Nutzer hat LHDC V5 unter v1.1.1-beta.1 mit echten LHDC-V5-Kopfhörern bei 1000 kbps / 192 kHz bestätigt (#50); v2 verwendet denselben Encoder. Unterstützt wird nur verlustbehaftetes LHDC V5: Für LHDC V2/V3 (ältere Kopfhörer) und den verlustfreien Modus „LHDC-RAW“ gibt es keinen Open-Source-Encoder. Im Modus Automatisch steht LHDC V5 an erster Stelle, vor LDAC.

Opus ist der A2DP-Opus-Hersteller-Codec von Android (Android 13+, Vendor ID 0x000000E0 Google): 48 kHz, 20-ms-Frames, 256 kbps Stereo, wie Android es anfordert (Standard 192, Mobil 128 kbps), kodiert mit libopus 1.5.2. Opus besteht den End-to-End-Test gegen eine virtuelle Senke, wurde aber noch nicht mit echten Opus-Kopfhörern geprüft. Im Modus Automatisch steht Opus hinter aptX Adaptive und vor aptX HD.

Opus 05 ist der eigene A2DP-Opus-Hersteller-Codec von PipeWire (Vendor ID 0x000005F1, Codec 0x1005; PipeWire opus_05), den nur PipeWire implementiert; der Empfänger muss also ein PC sein, auf dem PipeWire als A2DP-Senke läuft. BlueCaster sendet nur die Stereo-Musikrichtung (kein 5.1 / 7.1, kein Rückkanal): 48 kHz, 10-ms-Frames (20 ms, wenn die Senke nur diese kann), derselbe libopus-Encoder und dieselben Bitraten wie bei Opus, begrenzt auf das Limit der Senke. Automatisch wählt es nie; wählen Sie es unter Codecs oder mit -c opus05. Es besteht den End-to-End-Test gegen eine virtuelle Senke, die die Fähigkeiten von PipeWire anbietet, wurde aber nicht mit einem echten PipeWire-Empfänger ausprobiert. PipeWire als A2DP-Senke dekodiert Opus 05 seit 0.3.57 und das Opus von Android (opus_g) seit 1.2.0: Ubuntu 24.04 LTS liefert PipeWire 1.0.5 (nur Opus 05), Ubuntu 25.10 (1.4.7) und 26.04 LTS (1.6.2) liefern beide; beides ist mit BlueCaster noch nicht geprüft.

SBC XQ wurde mit einem Sony WH-1000XM4 überprüft (Dual Channel, Bitpool 43 bei 48 kHz, 552 kbps). Empfänger, die die Konfiguration ablehnen, werden mit normalem SBC neu verbunden. FastStream besteht den End-to-End-Test gegen eine virtuelle Senke, wurde aber noch nicht mit echten FastStream-Kopfhörern ausprobiert. Nur die Musikrichtung; Automatisch wählt es nie.

Nur klassisches aptX nötig? Windows 10 unterstützt klassisches aptX bereits im integrierten Bluetooth-Stack (nicht aptX HD, aptX LL oder aptX Adaptive), dafür wird BlueCaster also nicht benötigt. BlueCaster ist vor allem für LHDC V5, LDAC, aptX Adaptive, aptX HD und aptX Low Latency nützlich.

Zu aptX Adaptive. Kodiert wird mit dem MIT-lizenzierten, rein in Rust geschriebenen Encoder von AKS-Logic/aptx-adaptive-linux, dessen Tabellen seine Autoren aus ausgelieferten Qualcomm-Binärdateien und Funkmitschnitten rekonstruiert haben. 48 kHz Stereo (Anforderungen von 44,1 kHz werden mit 48 kHz aufgenommen), 24 Bit: Hoch 427 kbps oder Niedrige Latenz 265 kbps (R2-Senken: 270), ABR in Hoch. 96 kHz (Hoch, 646 kbps) wird verwendet, wenn Sie es in seinen Einstellungen wählen, sofern die Kopfhörer eine R2-Senke sind, die 96 kHz meldet, und nie in Niedrige Latenz; Automatisch streamt 48 kHz. Automatisch wählt es nach LHDC V5 und LDAC; oder wählen Sie es unter Codecs oder mit -c aptxad. Ein Nutzer hat es mit einem EarFun Air Pro 4+ bei 48 kHz unter 2.0.2-beta.6 bestätigt, so stabil wie klassisches aptX, und seitdem auch 96 kHz mit echten Kopfhörern (#86); das Originalprojekt meldet, dass es unter Linux mit Bose QuietComfort Ultra (1. Generation) und B&W Px7 S2e funktioniert. Siehe aptX-Familie und aptX Adaptive.

Plattformunterstützung

Komponente Windows 10 (x64 / ARM64) Windows 11 (x64 / ARM64) Linux (Ubuntu)
BlueCaster (Fenster, Infobereich, CLI) ✅ (noch nicht auf echter Hardware getestet) ✅ ❌
Aus dem Quellcode bauen (Rust, Visual Studio 2022+, Node.js) ✅ ✅ ❌
bluecaster_decode (Stream-Prüfung) ✅ ✅ ❌
End-to-End-Test tools/emu/run_test.py ✅ ✅ ❌
Virtueller Adapter tools/emu/emu_vhci.py ❌ ❌ ✅
Messempfänger tools/linux_sink ❌ ❌ ✅

BlueCaster selbst läuft nur unter Windows (Windows 10 22H2 oder Windows 11), als Build für x64 und ARM64. Die Linux-Werkzeuge benötigen Python 3.11 oder neuer (geprüft unter Ubuntu 26.04); setup.sh ist für Ubuntu / Debian gedacht, bei anderen Distributionen müssen die Pakete von Hand installiert werden.

Geprüfte Hardware

Getestet mit Sony WH-1000XM4 und WH-1000XM6, EarFun Air Pro 4+, Grado GW100x und weiteren, an TP-Link UB500, einem generischen RTL8761B, dem eingebauten RTL8852BE eines Notebooks, ASUS BT400 und CSR8510. Die vollständige Liste mit Codecs, Versionen und den zugrunde liegenden Berichten: Geprüfte Hardware.

Aussetzer und Verbindungsprobleme

Was sich hinter den Berichten über Aussetzer und Verbindungsprobleme verbarg, die Prüfungen vor dem Melden und wie die Verbindungsqualität zu lesen ist: Aussetzer und Verbindungsprobleme.

Zusammenarbeit mit anderen Tools

Apps anderer Anbieter, die laut Berichten in den Issues mit BlueCaster zusammenarbeiten, etwa Apps zur Steuerung von Ohrhörern (nicht von BlueCaster erstellt oder unterstützt): Funktioniert mit.

Aufnahmemodi

BlueCaster nimmt das Audio über WASAPI auf und bietet drei Modi:

Modus Beschreibung Anwendungsfall
Standardgerät Nimmt die gesamte Systemausgabe des Standardwiedergabegeräts auf Einfache Einrichtung – alle Klänge werden gestreamt
Virtuelles Gerät Nimmt von einem ausgewählten virtuellen Audiogerät auf (z. B. VB-CABLE, VoiceMeeter) Bestimmte Apps an Bluetooth leiten, während anderes Audio auf den Lautsprechern bleibt
Anwendung Nimmt nur auf, was eine App wiedergibt, nach deren eigener Verarbeitung (Windows 11 / Windows 10 2004+) Eine einzelne App senden oder die Ausgabe einer systemweiten Effekt-App (Equalizer, Klangverbesserer)

Im Modus Virtuelles Gerät kann BlueCaster das Windows-Standardwiedergabegerät auf das ausgewählte virtuelle Gerät umstellen (Bei Verbindung als Windows-Standardausgabe festlegen) und nimmt dann dessen Loopback-Ausgabe auf. Apps, die auf dem virtuellen Gerät ausgeben, werden über Bluetooth gestreamt. Endet das Streaming, wird das vorherige Standardgerät wiederhergestellt.

Die Quelle Standardgerät nimmt dem Standardwiedergabegerät das Audio nicht weg: Es wird dort und zusätzlich über Bluetooth wiedergegeben. Lässt sich das ausgewählte virtuelle Gerät nicht öffnen, sendet die Verbindung stattdessen das Systemaudio und weist darauf hin. Siehe Aufnahmemodi.

Funktionsweise

---
config:
  flowchart:
    wrappingWidth: 480
    rankSpacing: 30
---
flowchart TD
    s1["System-Loopback"]
    s2["Virtuelles Gerät"]
    s3["Anwendung (Prozess-Loopback)"]
    s1 & s2 & s3 --> cap["WASAPI-Loopback-Aufnahme (PCM)"]
    cap --> enc["Audio-Encoder:<br>LDAC / aptX-Familie / LHDC V5 / Opus / AAC / SBC"]
    enc --> bt["BTstack: A2DP Source → AVDTP → L2CAP → HCI"]
    bt --> usb["WinUSB → USB-Bluetooth-Adapter"]
    usb -.-> hp["Kopfhörer"]

BlueCaster umgeht den Bluetooth-Stack von Windows vollständig. Es kommuniziert über WinUSB direkt mit einem USB-Bluetooth-Adapter und implementiert mit BTstack den kompletten Bluetooth-Protokollstack im Benutzermodus. Ein kleines residentes Programm (bluecaster-core.exe, mit dem Symbol im Infobereich) streamt das Audio; das Fenster zeigt nur dessen Zustand an, daher stoppt das Schließen des Fensters das Audio nicht (siehe Architektur).

Funktionen

  • Mehrere Codecs: LHDC V5, LDAC, aptX Adaptive, aptX, AAC, aptX HD, aptX Low Latency, Opus, Opus 05, FastStream, SBC XQ und SBC mit automatischer Aushandlung
  • LE Audio: LC3 an LE-Audio-Kopfhörer und -Ohrhörer (BAP Unicast, beide Ohrhörer eines Paars, Headset-Lautstärke, Medientasten, GMAP mit niedriger Latenz). Benötigt einen Adapter mit isochronen Bluetooth-5.2-Kanälen; bisher am MediaTek MT7925 und mit dem Bluetooth-Emulator getestet (Verwendung)
  • Drei Aufnahmemodi: System-Loopback, Umleitung über ein virtuelles Audiogerät oder die Ausgabe einer einzelnen Anwendung
  • Fenster, Infobereich und CLI: ein Fenster für Einrichtung und Diagnose, ein Flyout und ein Menü im Infobereich für das alltägliche Verbinden sowie eine Kommandozeile (siehe Verwendung)
  • WinUSB in der App: weist dem Adapter den WinUSB-Treiber zu und stellt den ursprünglichen Treiber wieder her, Zadig ist nicht nötig (siehe Einrichtung); Kopfhörer, die Windows über den Adapter gekoppelt hat, verbinden sich ohne erneutes Koppeln
  • Einrichtung beim ersten Start: Adapter, Treiber und Firmware, Kopfhörer, erste Verbindung, allgemeine Einstellungen
  • ABR: Adaptive Bitrate für instabile Verbindungen (LDAC, LHDC V5 und aptX Adaptive; adaptiver Bitpool für SBC und SBC XQ)
  • Automatische Neuverbindung: Verbindet sich nach einem Verbindungsverlust erneut (3 Versuche; 10, wenn der Adapter neu starten muss) sowie nachdem der PC aus dem Energiesparmodus zurückkehrt; Automatisch wieder verbinden unter Audiogeräte schaltet das ab
  • Verbindungsqualität und AFH: Zeigt, was gesendet wird, den RSSI und die genutzten Kanäle; teilt dem Adapter mit, welche Wi-Fi-Kanäle zu meiden sind (siehe Verwendung)
  • Kopfhörersteuerung (AVRCP): Lautstärkeregler, synchron mit den Kopfhörern und der Windows-Lautstärke; deren Tasten für Wiedergabe/Pause, Weiter und Zurück steuern die Wiedergabe auf dem PC (siehe Verwendung)
  • Einstellungen pro Gerät: ein Codec (mit eigenen Einstellungen) und eine Ausgabequelle für jedes Audiogerät, nebeneinander auf Start und über den Infobereich verbindbar
  • Updates: Die installierte Version aktualisiert sich selbst, sobald das Audiogerät getrennt ist (siehe Verwendung)
  • Lokalisierung: Englisch, Japanisch, vereinfachtes / traditionelles Chinesisch, Koreanisch, Deutsch, Französisch und Spanisch
  • Realtek-Firmware: Geführter Firmware-Download für Realtek-Adapter
  • Diagnose: Verbindungsablauf, Protokoll, HCI-Aufzeichnung, Diagnoseinformationen für Fehlerberichte, Peer-Empfängertest gegen einen Linux-PC (siehe Verwendung)