Otázka:
Jak zjistím, které kodeky A2DP můj telefon momentálně podporuje / používá?
endolith
2012-07-25 01:27:13 UTC
view on stackexchange narkive permalink

Zvukový profil Bluetooth A2DP podporuje více kodeků. Všechna zařízení musí podporovat SBC (subband kodek), poté mohou podporovat další „volitelné kodeky“ jako MP3 a AAC nebo kodeky „jiné než A2DP“ jako apt-X.

Tyto kodeky samozřejmě mohou ' Ve skutečnosti se použije, pokud je přijímač také nepodporuje, v takovém případě obě zařízení spadnou zpět do SBC.

  1. Jak zjistím, které kodeky podporují můj hardware / ROM?
  2. Jak zjistím, který kodek se aktuálně používá? (Možná to také záleží na stopě, pokud například předává soubory MP3 / AAC přímo bez opětovného kódování)
[Tento článek] (https://www.howtogeek.com/354321/why-bluetooth-headsets-are-terrible-on-windows-pcs/) říká „Uživatelé Androidu mají štěstí, protože moderní telefony Android podporují AptX.Na rozdíl od Windows je dokonce možné zkontrolovat, zda připojení používá AptX! “Ale žádné vysvětlení jak.
čtyři odpovědi:
ewedel
2014-10-24 09:24:38 UTC
view on stackexchange narkive permalink

Na mém telefonu Cyanogen 10.1 (AOSP 4.2.2) je možné povolit zachycení provozu Bluetooth. Poté můžete tento záznam načíst do Wiresharku a podívat se na fázi vyjednávání, abyste zjistili, které kodeky podporuje spárované zvukové výstupní zařízení. Nejste si jisti, jaké OS to podporují: když jsem poprvé narazil na tuto metodu, prohlásil podporu pouze od 4.4 a dále, ale zjevně to není případ CM na Doubleshot. :-)

Za předpokladu, že máte požadované nastavení (rootované ~ 4.2.2 nebo novější), jsou to tyto kroky:

  1. spárujte svůj telefon s požadovaným zařízením A2DP
  2. deaktivujte bluetooth na vašem telefonu
  3. upravte tento soubor: /etc/bluetooth/bt_stack.conf změnou nastavení BtSnoopLogOutput z výchozí hodnoty false na true. K tomu používám ES Note Editor, spuštěný z ES File Explorer po povolení nastavení „Root Browser“.
  4. spusťte CatLog se všemi povolenými typy protokolování
  5. povolte bluetooth na vašem telefonu
  6. po spárování s výstupním zařízením přehrajte úryvek zvuku s vybraným přehrávačem (používám Apollo). Asi deset sekund by mělo být dost.
  7. Znovu deaktivujte Bluetooth
  8. zastavte protokolování CatLogu a uložte soubor protokolu na SD kartu
  9. [DŮLEŽITÉ!] Upravit bt_stack .conf, změna BtSnoopLogOutput zpět na false.
  10. zkopírujte zachycení BT z vaší SD karty (/sdcard/btsnoop_hci.log) spolu s uloženým souborem CatLog do počítače s nainstalovanou aktuální kopií Wireshark .
  11. načtěte soubor pro zachycení do Wireshark a nastavte filtr zobrazení Wireshark na „btavdtp“ (bez uvozovek). Nyní uvidíte pouze několik paketů, vyhledejte odpověď výstupního zařízení na dotaz AVDTP GetCapabilities a budete mít svou odpověď.

Časová razítka zachycení můžete také seřadit podle Časová razítka protokolu CatLog pro vyhledávání návrhových položek protokolu. Našel jsem pár a chytře jsem je zapomněl zahrnout do poznámek, na nichž je tento příspěvek založen.

Jakmile budu mít více času, doufám, že tuto poměrně zdlouhavou sadu kroků zredukuji na aplikaci, ale nejsem si jistý, jestli je to možné, a přesto na chvíli ještě nebudu mít čas. Mezitím jsou návrhy na zlepšení výše uvedeného procesu vítány.

Dík. To fungovalo skvěle. V protokolech CatLogu jsem nenašel nic, co by se týkalo schopností. Vyzkoušejte to na Moto G (2013) se systémem CM 4.4.2 a se sluchátky LG HBS-730. V protokolech není apt-X, protože CM k tomu nemá proprietární libs.
Díky, @Martynas, je dobré vědět. Zahrnovalo to podporu mp3? Zajímalo by mě, jaký by mohl být dobrý cíl pro testování, že můj telefon podporuje mp3. Autorádio bohužel není a nenašel jsem žádný (!) Produkt, který by dokumentoval jeho podporu kodeků A2DP. Pokud jde o CatLog, nemyslel jsem si, že by tam byl skutečný seznam kodeků, stejně jako některé sugestivní zprávy, které by mohly být použity k prohledání zdrojového kódu. Další den..
Takže odpověď na „Objevit“ vrátila tři zvukové výlevky. Odpověď na `GetCapabilities` pro` ACP SEID [2 - Audio Sink] `zahrnovala` Service: Media Codec - Audio MPEG-1,2 Audio`, která měla `MP3: True`. Nahrál jsem zachycený soubor protokolu do [github] (https://github.com/2m/btsnoop-motog2013-lghbs730).
Ještě jednou děkuji @Martynas. I když má 730 lepší recenze, popadl LG ​​HBS-750 pro testování. Stejná sada kodeků jako 730. Rozdvojili jste repo a přidali další záznam [zde] (https://github.com/ewedel/a2dp-captures). Bohužel v obou našich snímkách se telefon rozhodl místo MP3 používat SBC. Nejste si jisti, jaký typ mediálního souboru jste použili, ale můj test CM 4.2.2 používal VBR mp3s 128 kb / s (záměrně malá bitrate, aby se zabránilo zdůraznění šířky pásma BT). Začínáme si myslet, že ce4 může mít pravdu ohledně [problému s licencí] (http://en.wikipedia.org/wiki/MP3#Licensing_and_patent_issues).
Zdálo se, že eiditing souboru `/ etc / bluetooth / bt_stack.conf` nefunguje, ale měl jsem přesně stejné nastavení v nastavení vývojáře a to fungovalo. Díky vaší odpovědi se mi podařilo zjistit, že Parrot Zik 2 většinu času používá SBC.
ce4
2012-07-25 02:42:42 UTC
view on stackexchange narkive permalink

Při pohledu na zdroj existují minimálně 4 kodeky: SBC (povinné), MP3 (MPEG12), AAC (MPEG24) a ATRAC společnosti Sony.

  ./android/external/bluetooth/bluez/audio/a2dp.h: #define A2DP_CODEC_SBC 0x00 # definovat A2DP_CODEC_MPEG12 0x01 # definovat A2DP_CODEC_MPEG24 0x02 # definovat A2DP_CODEC_ATRAC 0x03  

Základním softwarem je linuxový „bluez“ stack. Podporuje SBC a má omezené možnosti MP3.

Seznam změn pro v3.25 (2009?) Zní: „Přidat omezenou podporu pro kodek MPEG12 / MP3“.

 . / android / external / bluetooth / bluez / ChangeLog: ver 3.25: Přidat omezenou podporu pro profil Handsfree. Přidejte omezenou podporu pro kodek MPEG12 / MP3.  

Viz také oznámení v3.25. Zdá se, že podpora MP3 závisí na gstreameru, který není k dispozici pro Android, takže si myslím, že SBC je jedinou možností pro spuštění A2DP.

PS: Zdá se, že většině zařízení A2DP chybí podpora MP3 / AAC kvůli problémy s patenty / licencemi (včetně Linuxu).

Jedná se o 3 volitelné kodeky, ano, nebo může použít jiné kodeky jako [Galaxy S III pomocí apt-X] (http://www.slashgear.com/galaxy-s-iii-just-the-latest-with- apt-x-bluetooth-audio-04226274 /). Myslel jsem, že kódování poskytuje hardware, však? Android dokáže přehrávat MP3, takže pochybuji, že existují nějaká patentová omezení.
Nemyslím si, že SBC má vyhrazený hardwarový kodér v zařízeních Android. Je to výpočetně skromné, takže si myslím, že se to děje v softwaru. Přinejmenším to naznačují zdroje. PS: Dívám se na zdroj Cyanogenmod, ne na HTC nebo Samsung. PS2: Myslel jsem zařízení audio dřezu na druhé straně s nedostatkem mp3 / aac (náhlavní soupravy atd.)
prittstift69
2015-02-21 00:42:06 UTC
view on stackexchange narkive permalink

U zařízení Nexus 4 (5.0.1) nebo Nexus 7 (2012) (4.4.4) je možné získat btsnoop_hci.log pomocí vývojářského režimu. Msgstr "Povolit Bluetooth HCI snoop log". Není nutné rootovat zařízení. Zdá se, že obě zařízení nenabízejí aptx. Testuji to na Moto Stream (bez aptx) a Philips AEA2500 (s aptx).

Jsem na CM 12.1 a tento lektvar je také k dispozici. Možná je na všech nedávných telefonech. Dík.
klaberte
2017-02-20 12:06:06 UTC
view on stackexchange narkive permalink

V mnoha případech tento proces nemusíte absolvovat, protože valdikss nyní sleduje mnoho přispěných výsledků na svých webových stránkách.

https://btcodecs.valdikss.org.ru / codec-kompatibilita / https://btcodecs.valdikss.org.ru/

Pokud máte potíže s nalezením souboru btsnoop_hci.log, zkuste zveřejnit řešení zde:

https://stackoverflow.com/questions/28445552/bluetooth-hci-snoop-log-not-generated/30352487#30352487

Jakmile najdete svůj btsnoop_hci.log, začněte prosím krokem 7 v předchozí odpovědi níže.

Předchozí odpověď: [Zásluhu na této odpovědi má většinou ewedel, který objasnil, že odpověď je v btsnoop_hci.log soubor pomocí Wireshark; a prittstift69 za sdílení snadného způsobu vytvoření tohoto souboru protokolu.]

Toto je podrobný návod pro nováčky, který shrnuje již poskytnuté odpovědi s určitou interpretací výsledků ode mne.

Jak zmínil prittstift69 a další, v části Možnosti vývojáře můžete „Povolit protokol Bluetooth HCI snoop“. Není třeba dodržovat složitější přístup navržený ewedel.

  1. Začněte vypnutím Bluetooth na zařízení Android (nazvu to „telefon“).

  2. Zapněte protokol Bluetooth HCI snoop v části Možnosti pro vývojáře.

  3. Zapněte Bluetooth na telefonu a připojte jej k Bluetooth přijímač (nazvu to „přijímač“). Tento krok předpokládá, že přijímač byl dříve spárován s telefonem.

  4. Přehrávejte hudbu na svém telefonu (nejlépe nekomprimovaný soubor WAV nebo FLAC). Vše, co potřebujete, je deset sekund. (Pravděpodobně ještě méně)

  5. Vypněte Bluetooth na telefonu.

  6. Vypnout protokol Bluetooth HCI snoop

  7. Přenést soubor btsnoop_hci.log (našel jsem jej v / sdcard / Android / Data /) do vašeho počítače. Spusťte na svém počítači wirehark a otevřete soubor btsnoop_hci.log

  8. Filtr pro „btavdtp“ (bez uvozovek) Hledání zprávy z telefonu do přijímače „Odeslaný příkaz - SetConfiguration ....“ Toto je zpráva odeslaná telefonem do přijímače s konečnou konfigurací použít pro tento zvuk po dokončení navázání spojení. Text v informačním poli vám řekne, jaká byla finální konfigurace.

[SBC] Pokud se jedná o SBC, možná budete chtít vědět, co je bitpool. Chcete-li to provést, odeberte filtr pro btavdtp, vyhledejte zprávu s protokolem SBC a klikněte na ni. Níže v části podrobností rozbalte informace o kodeku Bluetooth SBC. Poté rozbalte libovolná (nebo všechna) data rámce. Tam by to mělo jasně ukazovat bitpool používaný daným rámcem. Pokud je to 35, je velká šance, že vaše vzorkovací frekvence je 44,1 kHz, používáte Joint Stereo a používáte zvukový profil SBC Middle Quality ( http://soundexpert.org/news/-/blogs/ bluetooth-audio-quality-a2dp). Přenosová rychlost komprimovaného zvuku je pak 229 kb / s SBC, což je při testování Sound Expert skóre 4,68 ( http://soundexpert.org/encoders-224-kbps), což je srovnatelné s mp3 v okolí 110–130 kb / s

[APT-X] Pokud je to APT-X, podporuje váš telefon i přijímač APT-X, a to je to, co používá. Za předpokladu 16bitového, 44,1kHz, kodek pracuje na rychlosti 352kbits / s.

„ideálně nekomprimovaný soubor WAV nebo FLAC“ Nechtěli byste přehrát MP3, abyste zjistili, zda jej odesílá jako MP3 atd.?
Pouze pokud je vaším cílem zjistit, zda A2DP podporuje mp3 na obou stranách (platná otázka).Moje zkušenost však je, že podpora mp3 na obou stranách je vzácná (nikdy jsem ji neviděl na žádném ze svých zařízení a měl jsem jich dost).Alespoň u zařízení Android jsou vaše nejpravděpodobnější možnosti kodeku A2DP SBC a APTX.Přehrávání nekomprimovaného zvukového souboru nutí telefon znovu kódovat.
Nenapsal jsem odpověď


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...