Techniczne

Wyjaśnienie kodeków audio SIP

Dowiedz się, czym są kodeki audio używane w VoIP, jak wpływają na jakość połączeń oraz przepustowość i jak skonfigurować je w SipLine, aby uzyskać najlepsze rezultaty.

10 min czytania
1

Co to jest kodek?

Kodek (koder-dekoder) kompresuje i dekompresuje dźwięk w celu przesyłania go przez sieć. W technologii VoIP kodek określa kompromis między jakością dźwięku, zużyciem pasma a mocą obliczeniową. Podczas nawiązywania połączenia SIP obie strony negocjują wybór kodeka w procesie zdefiniowanym w części SDP (Session Description Protocol) sygnalizacji SIP.
Słowo „kodek” pochodzi od terminów koder/dekoder. Każdy kodek wykorzystuje inny algorytm do cyfryzacji i kompresji głosu.
2

G.711 — Uniwersalny standard

G.711 to najpowszechniej obsługiwany kodek w telefonii. Występuje w dwóch wariantach: PCMA (G.711a, A-law) używanym głównie w Europie oraz PCMU (G.711u, mu-law) stosowanym w Ameryce Północnej i Japonii. G.711 wykorzystuje 64 kb/s w każdym kierunku i zapewnia jakość dźwięku klasy telefonicznej (częstotliwość próbkowania 8 kHz, wąskopasmowe). Uwzględniając narzut protokołu IP, połączenie G.711 zużywa około 87 kb/s w każdym kierunku.
W razie wątpliwości użyj G.711a (PCMA). Jest on obsługiwany przez niemal każdego dostawcę VoIP i urządzenie SIP na świecie. To najbezpieczniejszy wybór pod kątem interoperacyjności.
3

Opus — Nowoczesny wybór

Opus to nowoczesny, otwarty kodek zaprojektowany dla dźwięku przesyłanego przez internet. Jest adaptacyjny, co oznacza, że dynamicznie dostosowuje przepływność do warunków sieciowych — od zaledwie 6 kb/s do 510 kb/s. Opus obsługuje dźwięk szerokopasmowy i superszerokopasmowy (do 48 kHz), zapewniając znacznie bogatsze brzmienie niż G.711. Dobrze radzi sobie z utratą pakietów dzięki wbudowanej korekcji błędów (FEC).
Opus jest idealny do rozmów między dwoma użytkownikami SipLine lub z dostawcami, którzy go obsługują. Oferuje jakość głosu zbliżoną do HD przy ułamku pasma wymaganego przez G.711.
4

Wybór odpowiedniego kodeka

Wybór zależy od konkretnego zastosowania. W celu zapewnienia maksymalnej kompatybilności z dowolnym dostawcą użyj G.711a. Aby uzyskać najlepszą jakość dźwięku na dobrych łączach, wybierz Opus. W scenariuszach o niskiej przepustowości, takich jak mobilne hotspoty, najlepszą opcją jest Opus z niższą przepływnością. W SipLine możesz włączyć wiele kodeków i pozwolić negocjacji SDP automatycznie wybrać najlepszy z nich.
W SipLine przeciągnij kodeki, aby zmienić ich priorytet. Pierwszy kodek na liście jest oferowany jako pierwszy podczas negocjacji. Umieść preferowany kodek na samej górze.
5

Negocjacja kodeków w SIP (SDP)

Gdy nawiązywane jest połączenie SIP, dzwoniący wysyła komunikat INVITE zawierający treść SDP, która wymienia obsługiwane kodeki (identyfikowane przez numery typów ładunku). Odbiorca odpowiada własnym SDP, wybierając jeden lub więcej pasujących kodeków. Jeśli nie zostanie znaleziony wspólny kodek, połączenie kończy się błędem 488 Not Acceptable Here. Ta negocjacja odbywa się automatycznie — wystarczy upewnić się, że włączone są kompatybilne kodeki.
Jeśli połączenia natychmiast się przerywają lub występuje brak dźwięku, sprawdź, czy w SipLine włączony jest przynajmniej jeden kodek obsługiwany przez Twojego dostawcę. Niezgodność kodeków to częsta przyczyna nieudanych połączeń.
6

Konfiguracja kodeków w SipLine

Przejdź do Ustawienia > Konta SIP > [Twoje konto] > Kodeki. Zobaczysz listę dostępnych kodeków z polami wyboru umożliwiającymi ich włączenie lub wyłączenie. Przeciągnij kodeki, aby ustalić ich priorytet. Dla większości użytkowników zalecana konfiguracja to: G.711a (PCMA) jako pierwszy, G.711u (PCMU) jako drugi i Opus jako trzeci. Zapewnia to maksymalną kompatybilność, jednocześnie wykorzystując zalety kodeka Opus, gdy jest dostępny.
Wyłącz kodeki, których nigdy nie będziesz używać. Mniejsza liczba kodeków w ofercie SDP oznacza szybsze zestawianie połączeń i mniejsze ryzyko problemów z negocjacją.

Najczęściej zadawane pytania

G.711 czy Opus — którego powinienem używać?

G.711 to bezpieczny wybór: powszechnie obsługiwany, o przewidywalnej jakości, bez kwestii licencyjnych. Opus przewyższa go pod względem jakości dźwięku i wydajności pasma, ale nie wszyscy dostawcy jeszcze go obsługują. W przypadku połączeń z tradycyjnymi liniami telefonicznymi (PSTN) prawie zawsze używany jest G.711. W rozmowach między softphonami lub nowoczesnymi platformami VoIP Opus zapewnia zauważalnie lepszą jakość.

Ile pasma zużywa każdy kodek?

Uwzględniając narzut IP/UDP/RTP: G.711 zużywa około 87 kb/s w każdym kierunku. Opus przy domyślnych ustawieniach VoIP zużywa około 30–40 kb/s na kierunek, choć w zależności od konfiguracji może to być od 10 kb/s do nawet 128 kb/s. Kodek Opus jest szczególnie wydajny, ponieważ dostosowuje się w czasie rzeczywistym do dostępnego pasma.

Czy mogę używać wielu kodeków jednocześnie?

Możesz włączyć wiele kodeków, ale podczas rozmowy używany jest tylko jeden. W trakcie negocjacji SDP obie strony uzgadniają pojedynczy kodek. Włączenie wielu kodeków zwiększa szansę na znalezienie wspólnego standardu z drugą stroną. SipLine wypróbuje kodeki w ustawionej przez Ciebie kolejności priorytetów.

Co z G.729?

G.729 to kodek o niskiej przepustowości (8 kb/s), historycznie popularny ze względu na oszczędność pasma. Był on jednak opatentowany (patenty wygasły w 2017 r.), a wiele nowoczesnych systemów przeszło na Opus, który oferuje lepszą jakość przy podobnych lub niższych przepływnościach. SipLine obsługuje G.729 w celu zapewnienia wstecznej kompatybilności, ale w nowych wdrożeniach wymagających niskiego pasma zalecany jest Opus.

Dlaczego moje połączenia kończą się błędem 488?

Odpowiedź 488 Not Acceptable Here oznacza, że strona zdalna nie mogła znaleźć wspólnego kodeka z Twoją konfiguracją SipLine. Włącz G.711a (PCMA) — jest to najbardziej uniwersalny kodek. Jeśli miałeś włączony tylko Opus, a dostawca go nie obsługuje, połączenia będą kończyć się tym błędem.

Czy kodek wpływa na opóźnienia?

Tak, nieznacznie. G.711 ma bardzo niskie opóźnienie przetwarzania, ponieważ stosuje minimalną kompresję. Opus wprowadza niewielkie opóźnienie kodowania (zazwyczaj 20–40 ms), ale rekompensuje to lepszą odpornością na utratę pakietów. W praktyce wpływ kodeka na całkowite opóźnienie jest niewielki w porównaniu z opóźnieniem sieciowym. Zarówno G.711, jak i Opus mieszczą się w dopuszczalnych granicach dla rozmów w czasie rzeczywistym.

Powiązane poradniki

Gotowy, aby zacząć?

Pobierz SipLine za darmo i postępuj zgodnie z tym poradnikiem.