Kodowanie z rozpoznawaniem zawartości

Logo usługi Media Services w wersji 3


Ostrzeżenie

Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz Przewodnik po wycofaniu usługi AMS.

Porada

Chcesz wygenerować miniatury, połączyć dwa filmy wideo, podkrop wideo lub obrócić go (między innymi)? Przykładowy kod usługi Media Services można znaleźć na stronie Przykłady .

Omówienie ustawienia wstępnego kodowania obsługującego zawartość

Aby przygotować zawartość do dostarczania przy użyciu przesyłania strumieniowego z adaptacyjną szybkością transmisji bitów, wideo musi być zakodowane z wieloma szybkościami transmisji bitów (od wysokiej do niskiej) i wieloma rozdzielczościami. Ta technika pozwala współczesnym odtwarzaczom wideo na urządzeniach Apple iOS, Android, Windows i Mac używać protokołów przesyłania strumieniowego, które płynnie przesyłają strumieniowo zawartość bez buforowania. Te różne odwzorowania rozmiaru ekranu (rozdzielczość) i jakość (szybkość transmisji bitów) pozwalają odtwarzaczowi wybrać najlepszą wersję filmu wideo, którą mogą obsługiwać bieżące warunki sieciowe. Sieć może się znacznie różnić od LTE, 4G, 5G, publicznej sieci Wi-Fi lub sieci domowej.

Proces kodowania zawartości w wielu odwzorowaniach wymaga generowania "drabiny kodowania" — tabeli rozdzielczości i szybkości transmisji bitów, która informuje koder, co należy wygenerować. Aby zapoznać się z przykładem takiej drabiny, zobacz wbudowane ustawienia wstępne kodowania usługi Media Services.

W idealnych warunkach chcesz mieć świadomość typu zawartości, którą kodujesz. Korzystając z tych informacji, można dostroić drabinę kodowania, aby dopasować złożoność i ruch w źródłowym filmie wideo. Oznacza to, że przy każdym rozmiarze wyświetlacza (rozdzielczość) w drabinie powinna istnieć szybkość transmisji bitów, po której wzrost jakości nie jest perceptywny — koder działa z tą optymalną szybkością transmisji bitów.

Następnym poziomem optymalizacji, który można wykonać, jest wybranie rozdzielczości na podstawie zawartości — na przykład film wideo prezentacji programu PowerPoint z małym tekstem będzie wyglądać rozmyty po zakodowaniu poniżej 720 pikseli linii wysokości. Ponadto możesz również mieć film wideo, który zmienia ruch i złożoność w zależności od tego, jak został nakręcony i edytowany. Zapewnia to możliwość dostosowania i dostosowania ustawień kodowania w każdej scenie lub granicy strzału. Za pomocą kodera inteligentnego można zoptymalizować ustawienia kodowania dla każdego zdjęcia w filmie wideo.

Usługa Azure Media Services udostępnia ustawienie wstępne adaptacyjnego przesyłania strumieniowego , które częściowo rozwiązuje problem zmienności szybkości transmisji bitów i rozdzielczości źródłowych filmów wideo. Jednak to ustawienie wstępne nie analizuje zawartości źródłowej, aby zobaczyć, jak bardzo jest złożona lub ile ruchu zawiera.

Ustawienie wstępne kodowania obsługującego zawartość poprawia bardziej statyczne ustawienie kodowania "przesyłania strumieniowego z adaptacyjną szybkością transmisji bitów", dodając logikę umożliwiającą koderowi wyszukiwanie optymalnej wartości szybkości transmisji bitów dla danej rozdzielczości, ale bez konieczności rozbudowanej analizy obliczeniowej. To ustawienie wstępne generuje unikatowe "drabiny" wyrównywane MP4s GOP na podstawie pliku źródłowego. Biorąc pod uwagę źródłową wideo, ustawienie wstępne wykonuje początkową szybką analizę zawartości wejściowej i używa wyników do określenia optymalnej liczby warstw, szybkości transmisji bitów i rozdzielczości potrzebnych do zapewnienia najwyższej jakości środowiska przesyłania strumieniowego z adaptacyjną szybkością transmisji bitów. To ustawienie wstępne jest skuteczne w przypadku filmów wideo o niskiej do średniej złożoności, w których pliki wyjściowe będą mieć niższą szybkość transmisji bitów niż bardziej statyczne ustawienie adaptacyjnego przesyłania strumieniowego, ale przy jakości, która nadal zapewnia dobre środowisko dla odbiorców. Folder wyjściowy będzie zawierać kilka plików MP4 z wideo i audio gotowych do przesyłania strumieniowego.

Konfigurowanie ustawień danych wyjściowych

Ponadto deweloperzy mogą również kontrolować zakres danych wyjściowych używanych przez ustawienie wstępne kodowania obsługującego zawartość podczas podejmowania decyzji o optymalnych ustawieniach kodowania drabiny przesyłania strumieniowego z adaptacyjną szybkością transmisji bitów.

Korzystając z klasy PresetConfigurations , deweloperzy mogą przekazać zestaw ograniczeń i opcji do ustawienia wstępnego kodowania obsługującego zawartość w celu kontrolowania wynikowych plików generowanych przez koder. Właściwości są szczególnie przydatne w sytuacjach, w których chcesz ograniczyć wszystkie kodowanie do określonej maksymalnej rozdzielczości w celu kontrolowania środowiska lub kosztów zadań kodowania. Warto również kontrolować maksymalną i minimalną szybkość transmisji bitów, którą odbiorcy mogą obsługiwać w sieci komórkowej lub w regionie globalnym, który ma ograniczenia przepustowości.

Obsługiwane koderi-dekodery

Ustawienie wstępne kodowania obsługującego zawartość jest dostępne do użycia z następującymi koderami koderowymi:

  • H.264
  • HEVC (H.265)

Szczegóły techniczne ustawień wstępnych obsługujących zawartość

Teraz przyjrzyjmy się nieco bliżej temu, jak działa ustawienie wstępne kodowania obsługującego zawartość. Poniższe przykładowe wykresy pokazują porównanie przy użyciu metryk jakości, takich jak PSNR i VMAF. Źródło zostało utworzone przez łączenie krótkich klipów o wysokiej złożoności zdjęć z filmów i programów telewizyjnych, mających na celu podkreślenie kodera. Z definicji to ustawienie wstępne generuje wyniki, które różnią się w zależności od zawartości — oznacza to również, że w przypadku niektórych zawartości nie może wystąpić znaczne zmniejszenie szybkości transmisji bitów lub poprawa jakości.

Krzywa zniekształceń szybkości (RD) przy użyciu funkcji PSNR

Rysunek 1. Krzywa zniekształceń szybkości (RD) przy użyciu metryki PSNR dla źródła o wysokiej złożoności

Krzywa zniekształceń szybkości (RD) przy użyciu zapory maszyn wirtualnych

Rysunek 2. Krzywa zniekształceń szybkości (RD) przy użyciu metryki VMAF dla źródła o wysokiej złożoności

Poniżej przedstawiono wyniki dla innej kategorii zawartości źródłowej, gdzie koder był w stanie określić, że dane wejściowe były niskiej jakości (wiele artefaktów kompresji ze względu na niską szybkość transmisji bitów). Dzięki ustawieniu wstępnie obsługującym zawartość koder postanowił utworzyć tylko jedną warstwę danych wyjściowych — przy wystarczającej szybkości transmisji bitów, aby większość klientów mogła odtwarzać strumień bez wstrzymania.

Krzywa rd przy użyciu psNR

Rysunek 3. Krzywa rd przy użyciu funkcji PSNR dla danych wejściowych o niskiej jakości (przy 1080p)

Krzywa usług pulpitu zdalnego korzystająca z zapory maszyn wirtualnych

Rysunek 4. Krzywa usług pulpitu zdalnego przy użyciu zapory maszyn wirtualnych dla danych wejściowych o niskiej jakości (przy 1080p)

Przykłady kodowania

Zobacz obszerną listę przykładów kodowania.

Uzyskiwanie pomocy i obsługi technicznej

Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami, korzystając z jednej z następujących metod: