Z tego dokumentu dowiesz się, jak używać protokołu RTMPS do przesyłania strumieniowego danych na żywo w YouTube z kodera. RTMPS to zwykły strumień wideo RTMP (RealTime Messaging Protocol) przesyłany przez połączenie SSL. Ten dokument jest przeznaczony dla dostawców koderów, którzy chcą dodać obsługę protokołu RTMPS do koderów obsługujących już protokół RTMP.
RTMPS to dobry wybór w przypadku większości zwykłych treści użytkowników, zwłaszcza jeśli wymagają one niskiego opóźnienia. Więcej informacji o różnych protokołach przesyłania, które obsługuje transmisja na żywo w YouTube, znajdziesz w porównaniu protokołów przesyłania.
Wymagania
Wysyłanie strumienia RTMPS do transmisji na żywo w YouTube wymaga spełnienia kilku warunków wstępnych:
- Każda część adresu URL połączenia (
<protocol>://<server>/<path>) musi być prawidłowa:- Protokół musi mieć postać
rtmps. - Serwer musi być prawidłowym punktem końcowym przesyłania RTMPS w YouTube.
- Ścieżka musi być prawidłową nazwą aplikacji RTMP w YouTube na żywo.
- Protokół musi mieć postać
- Połączenie musi być nawiązywane z serwerem przesyłania na porcie 443.
- Strumień multimedialny musi być wysyłany za pomocą protokołu RTMPS, czyli przy użyciu protokołu RTMP przez połączenie SSL.
Pobieranie adresu URL połączenia
Jeśli Twój koder korzysta już z interfejsu YouTube Live API, proces uzyskiwania adresu URL przesyłania RTMPS jest podobny do procesu uzyskiwania adresu URL RTMP. Aby utworzyć nowy
strumień przesyłania, wyślij żądanie wstawienia (POST) LiveStreams. W odpowiedzi pole
cdn.ingestionInfo.rtmpsIngestionAddress
określa adres URL RTMPS. Jeśli obsługujesz podwójne przesyłanie, adres kopii zapasowej
to cdn.ingestionInfo.rtmpsBackupIngestionAddress.
Tworzenie połączenia
Użyj preferowanej biblioteki gniazd, aby utworzyć połączenie SSL/TLS z portem 443 na serwerze określonym przez adres URL przesyłania. Ponieważ protokół TLS działa tylko z warstwą transportową, nazwa hosta serwera nie jest ściśle wymagana do zainicjowania połączenia. Jest jednak wymagana do uwierzytelniania na naszych serwerach. Dlatego dodaj rozszerzenie SNI (Server Name Indication) do uzgadniania SSL i ustaw nazwę serwera na nazwę hosta serwera, z którym się łączysz.
Po nawiązaniu połączenia SSL użyj go jako połączenia z biblioteką klienta RTMP. Zainicjowane połączenie SSL ma ten sam interfejs API co standardowe połączenie TCP, dlatego biblioteka RTMP powinna móc działać z nimi identycznie.
Rozwiązywanie problemów
Błędy SSL
Jeśli próbujesz utworzyć połączenie SSL, ale otrzymujesz nieprawidłowy certyfikat, prawdopodobnie łączysz się z serwerem YouTube, który oczekuje protokołu RTMP. Upewnij się, że nazwa serwera, której używasz, zawiera „rtmps” – zwróć uwagę na literę „s”.
Jeśli adres URL wygląda prawidłowo, ale nadal występuje błąd SSL, możesz łączyć się z nieprawidłowym portem. Sprawdź, czy łączysz się z portem 443.
Jeśli adres URL i port są prawidłowe, biblioteka SSL może nie obsługiwać prawidłowo certyfikatu. Poszukaj komunikatów diagnostycznych niskiego poziomu dotyczących błędów SSL i sprawdź, czy używasz SNI w uzgadnianiu.
Osiągnięto limit czasu połączenia.
Jeśli możesz połączyć się z serwerem, ale biblioteka RTMP przekracza limit czasu bez uzyskania sensownej odpowiedzi, być może skonfigurowano połączenie RTMP w postaci tekstu nieszyfrowanego z serwerem YouTube, który oczekuje protokołu RTMPS. Upewnij się, że tworzysz połączenie SSL, a nie zwykłe połączenie TCP.