{"id":35159,"date":"2019-10-31T22:02:38","date_gmt":"2019-10-31T19:02:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac\/"},"modified":"2019-10-31T22:02:38","modified_gmt":"2019-10-31T19:02:38","slug":"modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac","title":{"rendered":"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Zaleca si\u0119 zapozna\u0107 si\u0119 z wcze\u015bniejszym artyku\u0142em przed przeczytaniem tego. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/427997\/\">Audio przez Bluetooth: szczeg\u00f3\u0142owe informacje o profilach, kodekach i urz\u0105dzeniach<\/a><\/noindex><\/i><\/p>\n<p>Niekt\u00f3rzy u\u017cytkownicy bezprzewodowych s\u0142uchawek zauwa\u017caj\u0105 nisk\u0105 jako\u015b\u0107 d\u017awi\u0119ku i brak wysokich cz\u0119stotliwo\u015bci podczas korzystania z standardowego kodeka Bluetooth SBC, kt\u00f3ry obs\u0142uguj\u0105 wszystkie urz\u0105dzenia audio. Cz\u0119st\u0105 rekomendacj\u0105 na popraw\u0119 d\u017awi\u0119ku jest zakup urz\u0105dze\u0144 i s\u0142uchawek obs\u0142uguj\u0105cych kodeki aptX i LDAC. Te kodeki wymagaj\u0105 op\u0142at licencyjnych, dlatego urz\u0105dzenia z ich obs\u0142ug\u0105 s\u0105 dro\u017csze.<\/p>\n<p>Okazuje si\u0119, \u017ce niska jako\u015b\u0107 SBC jest spowodowana sztucznymi ograniczeniami stos\u00f3w Bluetooth i ustawieniami s\u0142uchawek, a to ograniczenie mo\u017cna obej\u015b\u0107 na wszystkich istniej\u0105cych urz\u0105dzeniach, poprzez zmiany w oprogramowaniu smartfona lub komputera.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Kodek SBC<\/h2>\n<p>Kodek SBC ma wiele r\u00f3\u017cnych parametr\u00f3w, kt\u00f3re ustalane s\u0105 na etapie nawi\u0105zywania po\u0142\u0105czenia. Nale\u017c\u0105 do nich:<\/p>\n<ul>\n<li>Liczba i typ kana\u0142\u00f3w: Joint Stereo, Stereo, Dual Channel, Mono;<\/li>\n<li>Liczba pasm cz\u0119stotliwo\u015bci: 4 lub 8;<\/li>\n<li>Liczba blok\u00f3w w pakiecie: 4, 8, 12, 16;<\/li>\n<li>Algorytm przydzielania bit\u00f3w podczas kwantyzacji: Loudness, SNR;<\/li>\n<li>Maksymalne i minimalne warto\u015bci puli bit\u00f3w u\u017cywanych podczas kwantyzacji (bitpool): zwykle od 2 do 53.<\/li>\n<\/ul>\n<p>Urz\u0105dzenie dekoduj\u0105ce musi wspiera\u0107 dowolne po\u0142\u0105czenie tych parametr\u00f3w. Urz\u0105dzenie koduj\u0105ce mo\u017ce nie realizowa\u0107 wszystkich.<br \/>\nIstniej\u0105ce stosy Bluetooth zwykle ustalaj\u0105 nast\u0119puj\u0105cy profil: Joint Stereo, 8 pasm, 16 blok\u00f3w, Loudness, bitpool 2..53. Ten profil koduje audio 44.1 kHz z bitrate'em 328 kbit\/s.<br \/>\nParametr bitpool bezpo\u015brednio wp\u0142ywa na bitrate w ramach jednego profilu: im jest wy\u017cszy, tym wy\u017cszy bitrate, a co za tym idzie, jako\u015bci.<br \/>\nJednak parametr bitpool nie jest zwi\u0105zany z konkretnym profilem; inne parametry maj\u0105 r\u00f3wnie\u017c znacz\u0105cy wp\u0142yw na bitrate: typ kana\u0142\u00f3w, liczba pasm cz\u0119stotliwo\u015bci, liczba blok\u00f3w. Mo\u017cna po\u015brednio zwi\u0119kszy\u0107 bitrate, ustalaj\u0105c niestandardowe profile, bez zmiany bitpool.<\/p>\n<p><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/4836fdb65b1204173bd6e01ef2d0cc6c.svg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n<i>Formu\u0142a do obliczania bitrate'u SBC<\/i><\/p>\n<p>\nNa przyk\u0142ad tryb Dual Channel koduje kana\u0142y osobno, wykorzystuj\u0105c ca\u0142y bitpool dla ka\u017cdego z kana\u0142\u00f3w. \u0417muszaj\u0105c urz\u0105dzenie do u\u017cycia Dual Channel zamiast Joint Stereo, uzyskujemy prawie podwojony bitrate przy tej samej maksymalnej warto\u015bci bitpool: 617 kbit\/s.<br \/>\nUwa\u017cam, \u017ce u\u017cywanie warto\u015bci bitpool niezwi\u0105zanej z profilem na etapie negocjacji to wada standardu A2DP, co doprowadzi\u0142o do sztucznego ograniczenia jako\u015bci SBC. Rozs\u0105dniej by\u0142oby negocjowa\u0107 bitrate, a nie bitpool.<\/p>\n<p>Takie sta\u0142e warto\u015bci Bitpool i Bitrate pochodz\u0105 z tabeli rekomendowanych warto\u015bci do u\u017cycia w wysokiej jako\u015bci audio. Jednak rekomendacja to nie pow\u00f3d, aby ogranicza\u0107 si\u0119 tylko do tych warto\u015bci.<\/p>\n<p><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/1076b610245c4bcb88e5812bdea27e60.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSpecyfikacja A2DP v1.2, kt\u00f3ra by\u0142a aktywna od 2007 do 2015 roku, nakazuje wszystkim urz\u0105dzeniom dekoduj\u0105cym prawid\u0142owo dzia\u0142a\u0107 z bitrate'ami do 512 kbit\/s:<\/p>\n<blockquote><p>Dekoder SNK powinien obs\u0142ugiwa\u0107 wszystkie mo\u017cliwe warto\u015bci bitpool, kt\u00f3re nie przekraczaj\u0105 maksymalnego bitrate'u. Ten profil ogranicza dost\u0119pny maksymalny bitrate do 320 kbit\/s dla mono i 512 kbit\/s dla tryb\u00f3w dwukana\u0142owych.<\/p><\/blockquote>\n<p>W nowej wersji specyfikacji nie ma ograniczenia bitrate'u. Zak\u0142ada si\u0119, \u017ce nowoczesne s\u0142uchawki wydane po 2015 roku i wspieraj\u0105ce EDR mog\u0105 obs\u0142ugiwa\u0107 bitrate do \u2248730 kbit\/s.<\/p>\n<p>Z jakiego\u015b powodu w sprawdzonych przeze mnie stosach Bluetooth na Linuxie (PulseAudio), Androidzie, BlackBerry i macOS s\u0105 sztuczne ograniczenia maksymalnej warto\u015bci parametru bitpool, kt\u00f3ry bezpo\u015brednio wp\u0142ywa na maksymalny bitrate. Jednak to nie jest najwi\u0119kszy problem, prawie wszystkie s\u0142uchawki r\u00f3wnie\u017c ograniczaj\u0105 maksymaln\u0105 warto\u015b\u0107 bitpool do liczby 53.<br \/>\nJak ju\u017c si\u0119 przekona\u0142em, wi\u0119kszo\u015b\u0107 urz\u0105dze\u0144 dzia\u0142a doskonale na zmodyfikowanym stosie Bluetooth z bitrate'em wynosz\u0105cym 551 kbit\/s, bez przerywa\u0144 i trzask\u00f3w. Jednak taki bitrate nigdy nie b\u0119dzie negocjowany w normalnych warunkach, na standardowych stosach Bluetooth.<\/p>\n<h2>Modyfikowalny stos Bluetooth<\/h2>\n<p>W ka\u017cdym stosie Bluetooth, kt\u00f3ry jest zgodny ze standardem A2DP, istnieje wsparcie dla trybu Dual Channel, jednak aktywacja go z interfejsu nie jest mo\u017cliwa.<\/p>\n<p>Dodajmy prze\u0142\u0105cznik do interfejsu! Zrobi\u0142em poprawki dla Androida 8.1 i Androida 9, kt\u00f3re dodaj\u0105 pe\u0142ne wsparcie dla Dual Channel do stosu, dodaj\u0105 tryb do menu prze\u0142\u0105czania w narz\u0119dziach deweloperskich i obs\u0142uguj\u0105 SBC z Dual Channel tak, jakby to by\u0142 dodatkowy kodek, taki jak aptX, AAC czy LDAC (Android nazywa to HD Audio), dodaj\u0105c zaznaczenie w ustawieniach urz\u0105dzenia Bluetooth. Oto jak to wygl\u0105da:<\/p>\n<p><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/5f14e2955f1dcaefa8ddc4b8fa413de1.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/review.lineageos.org\/q\/topic:bt-sbc-hd-dualchannel-pie+(status:open%20OR%20status:merged)\">Poprawka dla Androida 9<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/review.lineageos.org\/q\/topic:bt-sbc-hd-dualchannel+(status:open%20OR%20status:merged)\">Poprawka dla Androida 8.1<\/a><\/noindex><\/p>\n<p>Po zaznaczeniu opcji, d\u017awi\u0119k Bluetooth zaczyna by\u0107 przesy\u0142any z bitrate'em <b>551 kbit\/s<\/b>, je\u015bli s\u0142uchawki obs\u0142uguj\u0105 po\u0142\u0105czenie przy pr\u0119dko\u015bci 3 Mbit\/s, lub <b>452 kb\/s<\/b>, je\u015bli s\u0142uchawki obs\u0142uguj\u0105 tylko 2 mb\/s.<\/p>\n<p>Ta poprawka jest zawarta w nast\u0119puj\u0105cych alternatywnych wersjach oprogramowania:<\/p>\n<ul>\n<li><b>LineageOS<\/b><\/li>\n<li><b>Resurrection Remix<\/b><\/li>\n<li><b>crDroid<\/b><\/li>\n<\/ul>\n<h2>Sk\u0105d wzi\u0119\u0142y si\u0119 551 i 452 kb\/s?<\/h2>\n<p>Technologia dzielenia rozg\u0142osu w Bluetooth ma na celu efektywne przesy\u0142anie du\u017cych pakiet\u00f3w o sta\u0142ej wielko\u015bci. Przesy\u0142anie danych odbywa si\u0119 w slotach, najwi\u0119ksza liczba slot\u00f3w wysy\u0142anych w trakcie jednej transmisji wynosi 5. Istniej\u0105 r\u00f3wnie\u017c tryby przesy\u0142ania, kt\u00f3re wykorzystuj\u0105 1 lub 3 sloty, ale nie 2 ani 4. W 5 slotach mo\u017cna przes\u0142a\u0107 do 679 bajt\u00f3w przy pr\u0119dko\u015bci po\u0142\u0105czenia 2 mb\/s i do 1021 bajt\u00f3w przy pr\u0119dko\u015bci 3 mb\/s, a w 3 slotach \u2013 odpowiednio 367 i 552 bajty.<\/p>\n<p><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/c4596cb8ebdbaf2b57e201117e640f2f.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe\u015bli chcemy przes\u0142a\u0107 mniej danych, ni\u017c 679 lub 1021 bajt\u00f3w, ale wi\u0119cej ni\u017c 367 lub 552 bajty, to transmisja i tak zajmie 5 slot\u00f3w, a dane b\u0119d\u0105 przesy\u0142ane w tym samym czasie, co obni\u017ca efektywno\u015b\u0107 przesy\u0142ania.<\/p>\n<p><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/c9b0645c78d41d7d3a9879930c091d2a.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSBC w trybie Dual Channel, przy 44100 Hz audio z parametrami Bitpool 38, 16 blok\u00f3w w ramce, 8 pasmami cz\u0119stotliwo\u015bci, koduje audio w ramkach o rozmiarze 164 bajty, z bitrate'em 452 kb\/s.<br \/>\nAudio musi by\u0107 enkapsulowane w protoko\u0142y przesy\u0142ania L2CAP i AVDTP, kt\u00f3re zajmuj\u0105 16 bajt\u00f3w z u\u017cytecznego obci\u0105\u017cenia audio.<\/p>\n<p><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/2fd899e7b521497844e1354ae5f825eb.svg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>W ten spos\u00f3b, w jednej transmisji Bluetooth z 5 slotami udaje si\u0119 pomie\u015bci\u0107 4 ramki audio:<\/p>\n<pre><code class=\"plaintext\">679 (EDR 2 mb\/s DH5) - 4 (L2CAP) - 12 (AVDTP\/RTP) - 1 (nag\u0142\u00f3wek SBC) - (164*4) = 6<\/code><\/pre>\n<p>\nPomie\u015bcili\u015bmy 11.7 ms danych audio w wysy\u0142anym pakiecie, kt\u00f3ry zostanie przes\u0142any w ci\u0105gu 3.75 ms, i pozosta\u0142o nam 6 niewykorzystanych bajt\u00f3w w przesy\u0142ce.<br \/>\nJe\u015bli lekko podniesiemy bitpool, 4 ramki audio ju\u017c nie zmieszcz\u0105 si\u0119 w jednym pakiecie. B\u0119dziemy musieli wysy\u0142a\u0107 po 3 ramki naraz, co obni\u017ca efektywno\u015b\u0107 przesy\u0142ania, zmniejsza ilo\u015b\u0107 przesy\u0142anego audio w jednym pakiecie i szybciej prowadzi do przerywania d\u017awi\u0119ku w z\u0142ych warunkach radiowych.<\/p>\n<p>W ten sam spos\u00f3b dobrano bitrate 551 kb\/s dla EDR 3 mb\/s: przy Bitpool 47, 16 blokach w ramce, 8 pasmach cz\u0119stotliwo\u015bci uzyskuje si\u0119 rozmiar ramki 200 bajt\u00f3w, przy bitrate 551 kb\/s. W jednym pakiecie mie\u015bci si\u0119 5 ramek lub 14.6 ms muzyki.<\/p>\n<p>Algorytm obliczania wszystkich parametr\u00f3w SBC jest do\u015b\u0107 skomplikowany, \u0142atwo si\u0119 zgubi\u0107 podczas r\u0119cznego liczenia, dlatego stworzy\u0142em interaktywny kalkulator w pomoc dla zainteresowanych: <noindex><a rel=\"nofollow\" href=\"https:\/\/btcodecs.valdikss.org.ru\/sbc-bitrate-calculator\/\">btcodecs.valdikss.org.ru\/sbc-bitrate-calculator<\/a><\/noindex><\/p>\n<h2>Po co to wszystko?<\/h2>\n<p>Wbrew powszechnemu przekonaniu o jako\u015bci d\u017awi\u0119ku kodeka aptX, w przypadku niekt\u00f3rych plik\u00f3w mo\u017ce on dawa\u0107 wyniki gorsze ni\u017c SBC przy standardowej przep\u0142ywno\u015bci 328 kbit\/s.<\/p>\n<p>SBC dynamicznie przydziela bity kwantowania do pasm cz\u0119stotliwo\u015bci, dzia\u0142aj\u0105c na zasadzie \u00bbod dolnych do g\u00f3rnych\u00ab. Je\u015bli ca\u0142kowita przep\u0142ywno\u015b\u0107 jest wykorzystywana na dolne i \u015brednie cz\u0119stotliwo\u015bci, g\u00f3rne cz\u0119stotliwo\u015bci zostan\u0105 \u00bbprzyci\u0119te\u00ab (zamiast nich b\u0119dzie cisza).<br \/>\naptX kwantuje pasma cz\u0119stotliwo\u015bci sta\u0142\u0105 liczb\u0105 bit\u00f3w, co skutkuje sta\u0142\u0105 przep\u0142ywno\u015bci\u0105: 352 kbit\/s dla 44,1 kHz, 384 kbit\/s dla 48 kHz, i nie potrafi \u00bbprzenie\u015b\u0107 bit\u00f3w\u00ab na te cz\u0119stotliwo\u015bci, kt\u00f3re najbardziej ich potrzebuj\u0105. W przeciwie\u0144stwie do SBC, aptX nie b\u0119dzie \u00bbprzycina\u0142\u00ab cz\u0119stotliwo\u015bci, a b\u0119dzie dodawa\u0142 do nich szumy kwantowania, zmniejszaj\u0105c dynamiczny zakres audio, a czasami wprowadzaj\u0105c charakterystyczne trzaski. Natomiast SBC \u00bbpo\u017cera szczeg\u00f3\u0142y\u00ab \u2014 odrzuca najcichsze fragmenty.<br \/>\n\u015arednio, w por\u00f3wnaniu do SBC 328k, aptX wprowadza mniej zniekszta\u0142ce\u0144 w muzyce o szerokim zakresie cz\u0119stotliwo\u015bci, ale w przypadku muzyki o w\u0105skim zakresie cz\u0119stotliwo\u015bci i szerokim zakresie dynamicznym SBC 328k czasami wygrywa.<\/p>\n<p>Rozwa\u017cmy przypadek szczeg\u00f3lny. Spektrogram nagrania gry na fortepianie:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/er\/nq\/rc\/ernqrcwa0ic5mqwopjg5zbu_fxm.png\"><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/91247edc12764c6a4985e5a58ec1ad81.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Podstawowa energia le\u017cy w cz\u0119stotliwo\u015bciach od 0 do 4 kHz, a trwa do 10 kHz.<br \/>\nSpektrogram pliku skompresowanego w aptX wygl\u0105da nast\u0119puj\u0105co:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/dl\/bl\/do\/dlbldoq_rdrjykephl2ostfbafk.png\"><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/aad46eb446ac9c5cffbd0ce8bd11e45b.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>A tak wygl\u0105da SBC 328k.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/us\/3m\/ke\/us3mke0av1s_1ezkyk6ycq1g2vo.png\"><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/1b879741ea109c10c9e94a9a17830fc6.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Wida\u0107, \u017ce SBC 328k okresowo ca\u0142kowicie wy\u0142\u0105cza\u0142 zakres powy\u017cej 16 kHz, wykorzystuj\u0105c ca\u0142\u0105 dost\u0119pn\u0105 przep\u0142ywno\u015b\u0107 na zakresy poni\u017cej tej warto\u015bci. Jednak aptX wprowadzi\u0142 wi\u0119cej zniekszta\u0142ce\u0144 w spektrum cz\u0119stotliwo\u015bci s\u0142yszalnych dla ludzkiego ucha, co mo\u017cna zobaczy\u0107 na odj\u0119tym oryginalnym spektrogramie od spektrogramu aptX (im ja\u015bniejsze, tym wi\u0119cej zniekszta\u0142ce\u0144):<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ug\/-i\/5z\/ug-i5zpihrfnvumf9no_glecqna.png\"><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/7820015a2ef3c7f97802de179f2201eb.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Podczas gdy SBC 328k mniej zepsu\u0142 sygna\u0142 w zakresie od 0 do 10 kHz, a reszt\u0119 \u2014 obci\u0105\u0142:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/tf\/x8\/7z\/tfx87z8hpenx51spblrfvkc-ihe.png\"><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/793e3011a6aa07f1750cf0a5cca204cf.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Przep\u0142ywno\u015b\u0107 485k SBC wystarczy\u0142a, aby zachowa\u0107 ca\u0142y zakres cz\u0119stotliwo\u015bci, bez wy\u0142\u0105czania pasm.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/_c\/mc\/xy\/_cmcxyxwlf7u4tv-rbplwk5bmtu.png\"><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/27f215a26658b9b2bf3d852f4da96740.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>SBC 485k w tej kompozycji znacz\u0105co przewy\u017csza aptX w zakresie 0-15 kHz, a z mniejsz\u0105, ale wci\u0105\u017c zauwa\u017caln\u0105 r\u00f3\u017cnic\u0105 \u2014 w 15-22 kHz (im ciemniej, tym mniej zniekszta\u0142ce\u0144):<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/e-\/qz\/h8\/e-qzh8azmingcbhvuwxj8iptuau.png\"><img decoding=\"async\" alt=\"Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/b65c37703ee677f561929ba714ed19ec.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/files.catbox.moe\/kpx711.zip\">Archiwum oryginalnego audio, SBC i aptX<\/a><\/noindex>.<\/p>\n<p>Przechodz\u0105c na wysokobitowy SBC, uzyskasz d\u017awi\u0119k, kt\u00f3ry cz\u0119sto przewy\u017csza aptX, na dowolnych s\u0142uchawkach. Na s\u0142uchawkach obs\u0142uguj\u0105cych po\u0142\u0105czenie EDR 3 Mbit\/s, przep\u0142ywno\u015b\u0107 551 kbit\/s daje d\u017awi\u0119k por\u00f3wnywalny z aptX HD.<\/p>\n<h2>A mo\u017cna jeszcze wi\u0119cej?<\/h2>\n<p>W poprawce dla systemu Android znajduje si\u0119 r\u00f3wnie\u017c opcja dalszego zwi\u0119kszenia bitrate dla urz\u0105dze\u0144 EDR do 2 Mbps. Mo\u017cna podnie\u015b\u0107 bitrate z 452 kbps do 595 kbps, kosztem zmniejszenia stabilno\u015bci transmisji w trudnych warunkach radiowych.<br \/>\nWystarczy ustawi\u0107 zmienn\u0105 persist.bluetooth.sbc_hd_higher_bitrate na warto\u015b\u0107 1:<\/p>\n<pre><code class=\"plaintext\"># setprop persist.bluetooth.sbc_hd_higher_bitrate 1<\/code><\/pre>\n<p>\nPatch na ekstremalny bitrate zosta\u0142 na razie zaakceptowany tylko w LineageOS 15.1, ale nie w 16.0.<\/p>\n<h2>Kompatybilno\u015b\u0107 z urz\u0105dzeniami<\/h2>\n<p>SBC Dual Channel jest wspierany przez praktycznie wszystkie s\u0142uchawki, g\u0142o\u015bniki i systemy audio w samochodach. Nic dziwnego - standard zak\u0142ada jego wsparcie w ka\u017cdym urz\u0105dzeniu dekoduj\u0105cym. Jest kilka urz\u0105dze\u0144, na kt\u00f3rych tryb ten powoduje problemy, ale to s\u0105 przypadki jednostkowe.<br \/>\nSzczeg\u00f3\u0142owe informacje o kompatybilnych urz\u0105dzeniach mo\u017cna znale\u017a\u0107 na <noindex>4pda<\/noindex> lub <noindex><a rel=\"nofollow\" href=\"https:\/\/forum.xda-developers.com\/android\/software-hacking\/improve-bluetooth-audio-quality-t3832615\">xda-developers<\/a><\/noindex>.<\/p>\n<h2>Por\u00f3wnanie r\u00f3\u017cnic w d\u017awi\u0119ku<\/h2>\n<p>Stworzy\u0142em serwis internetowy, kt\u00f3ry koduje audio w SBC (a tak\u017ce aptX i aptX HD) w czasie rzeczywistym, bezpo\u015brednio w przegl\u0105darce. Dzi\u0119ki niemu mo\u017cna por\u00f3wnywa\u0107 d\u017awi\u0119k r\u00f3\u017cnych profili SBC i inne kodeki, bez faktycznego przesy\u0142ania audio przez Bluetooth, na dowolnych s\u0142uchawkach przewodowych, g\u0142o\u015bnikach, oraz swojej ulubionej muzyce, a tak\u017ce zmienia\u0107 parametry kodowania w czasie odtwarzania audio.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/btcodecs.valdikss.org.ru\/sbc-encoder\/\">btcodecs.valdikss.org.ru\/sbc-encoder<\/a><\/noindex><\/p>\n<h2>Kontakt z deweloperami Androida<\/h2>\n<p>Napisa\u0142em do wielu deweloper\u00f3w stosu Bluetooth z Google, prosz\u0105c o rozwa\u017cenie w\u0142\u0105czenia poprawek do g\u0142\u00f3wnej ga\u0142\u0119zi Androida \u2014 AOSP, ale nie dosta\u0142em \u017cadnej odpowiedzi. Moje poprawki w <noindex><a rel=\"nofollow\" href=\"https:\/\/android-review.googlesource.com\/q\/topic:bt-sbc-hd-dualchannel+(status:open%20OR%20status:merged)\">systemie zarz\u0105dzania patchami Gerrit dla Androida<\/a><\/noindex> r\u00f3wnie\u017c pozosta\u0142y bez komentarzy ze strony kogokolwiek zwi\u0105zanego z tematem.<br \/>\nBy\u0142bym wdzi\u0119czny, gdyby kto\u015b m\u00f3g\u0142 mi pom\u00f3c w kontakcie z deweloperami z Google oraz wdro\u017ceniu SBC HD w Androidzie. Patch w gerrit jest ju\u017c przestarza\u0142y (to jedna z wczesnych wersji), i zaktualizuj\u0119 go, je\u015bli deweloperzy b\u0119d\u0105 zainteresowani moimi zmianami (nie jest \u0142atwo go zaktualizowa\u0107, nie mam urz\u0105dze\u0144 kompatybilnych z Android Q).<\/p>\n<h2>Podsumowanie<\/h2>\n<p>U\u017cytkownicy smartfon\u00f3w z firmware'ami LineageOS, Resurrection Remix i crDroid mog\u0105 cieszy\u0107 si\u0119 poprawion\u0105 jako\u015bci\u0105 d\u017awi\u0119ku ju\u017c teraz, wystarczy aktywowa\u0107 opcj\u0119 w ustawieniach urz\u0105dzenia Bluetooth. U\u017cytkownicy Linuxa r\u00f3wnie\u017c mog\u0105 uzyska\u0107 zwi\u0119kszony bitrate SBC, instaluj\u0105c <noindex><a rel=\"nofollow\" href=\"https:\/\/lists.freedesktop.org\/archives\/pulseaudio-discuss\/2019-June\/031168.html\">patch od Pali Roh\u00e1ra<\/a><\/noindex>, kt\u00f3ry, poza tym wszystkim, dodaje wsparcie dla kodek\u00f3w aptX, aptX HD i FastStream.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/455316\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439: \u0410\u0443\u0434\u0438\u043e \u0447\u0435\u0440\u0435\u0437 Bluetooth: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u0445, \u043a\u043e\u0434\u0435\u043a\u0430\u0445 \u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0445 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u043e\u0432 \u043e\u0442\u043c\u0435\u0447\u0430\u044e\u0442 \u043d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0432\u0443\u043a\u0430 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e Bluetooth-\u043a\u043e\u0434\u0435\u043a\u0430 SBC, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0432\u0441\u0435 \u0430\u0443\u0434\u0438\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0427\u0430\u0441\u0442\u043e\u0439 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0435\u0439 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043a\u0443\u043f\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u043e\u0432 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 aptX \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35159","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439: \u0410\u0443\u0434\u0438\u043e \u0447\u0435\u0440\u0435\u0437 Bluetooth: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u0445, \u043a\u043e\u0434\u0435\u043a\u0430\u0445 \u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c Bluetooth-\u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430 \u043d\u0430 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u0430\u0445 \u0431\u0435\u0437 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 AAC, aptX \u0438 LDAC | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439: \u0410\u0443\u0434\u0438\u043e \u0447\u0435\u0440\u0435\u0437 Bluetooth: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u0445, \u043a\u043e\u0434\u0435\u043a\u0430\u0445 \u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:02:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:02:38+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Modyfikujemy stos Bluetooth, aby poprawi\u0107 d\u017awi\u0119k w s\u0142uchawkach bez kodek\u00f3w AAC, aptX i LDAC | ProHoster","description":"Przed przeczytaniem tego artyku\u0142u zaleca si\u0119 zapozna\u0107 si\u0119 z wcze\u015bniejszym artyku\u0142em: Audio przez Bluetooth: maksymalne szczeg\u00f3\u0142y o profilach, kodekach i.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c Bluetooth-\u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430 \u043d\u0430 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u0430\u0445 \u0431\u0435\u0437 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 AAC, aptX \u0438 LDAC | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439: \u0410\u0443\u0434\u0438\u043e \u0447\u0435\u0440\u0435\u0437 Bluetooth: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u0445, \u043a\u043e\u0434\u0435\u043a\u0430\u0445 \u0438.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:02:38+00:00","article:modified_time":"2019-10-31T19:02:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35159","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 22:08:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:47:35","updated":"2026-01-21 22:08:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=35159"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35159\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=35159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=35159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=35159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}