1. Co dzieje się podczas ładowania
Uruchomienie kanału IPTV to nie jedno połączenie. Aplikacja pobiera playlistę strumienia, dostawca często dopiero wtedy uruchamia transkoder, pierwsze segmenty wideo przychodzą po 3-4 sekundach, a dekoder potrzebuje klatki kluczowej, żeby cokolwiek pokazać. Zdrowy kanał startuje zwykle w 2-5 sekund. IPappTV pilnuje tego procesu trzema strażnikami:
- Strażnik rozruchu. Jeśli buforowanie startu trwa 5 sekund bez pierwszej klatki, próba jest uznana za nieudaną i drabinka idzie dalej: ponowne połączenie, potem drugi dekoder (okno trzeciej próby: 6 s). Dotyczy tylko startu - zator w trakcie oglądania nie restartuje kanału od zera.
- Strażnik martwej ciszy. Odtwarzacz może stanąć bezczynnie: nie buforuje, nie zgłasza błędu, nie pokazuje nic. Po 8 sekundach takiej ciszy aplikacja wyświetla komunikat z ostatnią diagnostyką zamiast zostawiać czarny prostokąt.
- Strażnik stopklatki - opisany w artykule o zamrożonym obrazie.
Po wyczerpaniu prób komunikat zawiera to, co odtwarzacz zdążył ustalić o strumieniu: kodek i rozdzielczość wideo, kodek i liczbę kanałów dźwięku, albo „nie wykryto ścieżki". Ten opis warto przepisać, zanim napiszesz do dostawcy lub do nas - mówi dokładnie, na czym stanęło.
2. Błąd sieci a błąd strumienia
Aplikacja rozróżnia dwa rodzaje awarii i idzie różnymi ścieżkami:
Błąd sieciowy - serwer odrzucił połączenie, zerwał je albo odpowiedział kodem HTTP 4xx/5xx. Zmiana dekodera nic tu nie da, więc aplikacja zmienia identyfikator, którym przedstawia się serwerowi (User-Agent). Część paneli IPTV blokuje nieznane nazwy odtwarzaczy; aplikacja próbuje kolejno trzech identyfikatorów, zaczynając od tego, którego używa VLC. Jeśli kanał ruszył dopiero na drugim, to znak, że dostawca filtruje po nazwie odtwarzacza.
Błąd dekodowania - dane przyszły, ale odtwarzacz nie umie ich odtworzyć. Tu działa drabinka dekoderów: ponowne połączenie, potem FFmpeg.
Jest jeszcze trzeci przypadek, bez błędu: przekierowanie z https na http. Panele często przekierowują strumień na serwer bez szyfrowania. Aplikacja na to pozwala - standardowy odtwarzacz Androida odrzuca takie przekierowania, przez co kanał w innych aplikacjach „kręci się" w nieskończoność, choć w VLC działa.
3. Kolejność sprawdzania
- Czy inne kanały z tej listy działają? Jeśli żaden - problem jest z kontem u dostawcy (wygasło, limit jednoczesnych połączeń, blokada adresu IP) albo z Twoim łączem. Odśwież listę: menu listy kanałów → „Odśwież listę i EPG". Dostawcy zmieniają adresy serwerów, a stara kopia listy prowadzi donikąd.
- Czy ten kanał działa w VLC? Zainstaluj VLC na tym samym urządzeniu i otwórz w nim tę samą listę. Jeśli kanał nie działa również tam - to dostawca. Jeśli działa, czytaj dalej.
- Przeczytaj komunikat. „Nie udało się połączyć z serwerem kanału" to sieć - patrz punkt 4. Opis z kodekami albo „nie wykryto ścieżki" to strumień - patrz punkt 5.
- Limit połączeń. Większość kont IPTV ma limit jednego strumienia naraz. Kanał otwarty na telefonie blokuje telewizor, i odwrotnie. Zamknij odtwarzacz na drugim urządzeniu - także w tle.
4. Gdy komunikat mówi o połączeniu
- Serwer odrzuca wszystkie trzy identyfikatory - dostawca dopuszcza tylko własną aplikację. Rzadkie, ale się zdarza. Nie ma obejścia, nie planujemy podszywania się pod konkretne aplikacje.
- Kanał działa przez chwilę i pada - to zwykle limit czasu sesji albo przeciążony serwer. Zwiększ bufor w ustawieniach (domyślnie 2,5 s); przy słabym łączu pomaga 5-8 s (zakres 1-10 s) kosztem wolniejszego przełączania.
5. Gdy komunikat mówi o strumieniu
- „wideo: nie wykryto ścieżki", jest audio - kanał radiowy albo strumień, w którym dostawca wyłączył obraz. Nic do zrobienia w aplikacji.
- Jest opis wideo, np. „video/avc 1920x1080", a obraz nie ruszył - dekoder sprzętowy nie przyjął formatu. Ustaw dekoder programowy dla tego kanału: strzałka w dół → dekoder → „Zawsze programowy (FFmpeg)".
- „video/hevc" na starszym urządzeniu - brak sprzętowego dekodera HEVC (H.265). FFmpeg poradzi sobie z 1080p, z 4K raczej nie.
- Strumień z DRM - nieobsługiwany, komunikat będzie mówił o błędzie dekodowania na każdej próbie.
6. Gdy nie pomaga
Napisz na kontakt@ipapptv.com z treścią komunikatu (linijka z kodekami), modelem urządzenia, wersją Androida i informacją, czy kanał działa w VLC. Bez adresu strumienia i bez danych logowania - nie są potrzebne do diagnozy, a nie chcemy ich przechowywać.
