Jakie są różnice między profilami H.264?

56

Renderowałem wideo w programie After Effects CS5, a kiedy go formatowałem, wybrałem kodek H.264 i w tym formacie miał on profil bazowy, główny i wysoki.

Zrobiłem więc mały test - renderując oba pliki przy pomocy Baseline i High. Jedyną rzeczą, którą zauważyłem, było to, że rozmiar wideo był mniejszy, a Wysoka dostarczała mniejszy rozmiar pliku.

Chciałem tylko wiedzieć, jaka jest różnica w tym, która z nich byłaby najlepsza dla jakości, a najlepsza dla rozmiaru pliku.

James
źródło

Odpowiedzi:

78

Co to jest profil?

Profil H.264 mniej więcej określa, jakie „dzwonki i gwizdy” może używać enkoder podczas kompresji wideo - i jest wiele funkcji H.264, które koder może włączyć. Te, które można włączyć, są określone przez profil. Profile zapewniają zgodność między urządzeniami o różnych możliwościach dekodowania. W przypadku profili koder i dekoder uzgadniają zestaw funkcji, które mogą obsługiwać oba.

Co robią różne profile?

Aby uzyskać szczegółową listę, zobacz Profile H.264 na Wikipedii.

Zasadniczo profil linii podstawowej ogranicza koder tylko do niektórych podstawowych funkcji. Filmy zakodowane przy użyciu profilu podstawowego można łatwo odtwarzać, nawet na urządzeniach o niższej mocy obliczeniowej, takich jak starsze smartfony. Na przykład telefony z Androidem i iOS oficjalnie odtwarzają tylko filmy zakodowane przy użyciu profilu podstawowego, ale nie są w stanie High ani Main . To się nieco zmieniło w ostatnich latach, kiedy coraz więcej telefonów może odtwarzać filmy główne lub głośne, ale oficjalne rekomendacje o tym nie wspominają .

Profil ten jest wykorzystywany głównie w aplikacjach do wideokonferencji i aplikacjach mobilnych głównie w przypadku tanich aplikacji. Odpowiada podzbiorowi funkcji, które są wspólne między profilami podstawowym, głównym i wysokim

Main i High po prostu dodają do tego funkcje. Szczególnie wysoki profil jest często używany w transmisji:

Podstawowy profil dla aplikacji do przechowywania programów i płyt, szczególnie dla aplikacji telewizyjnych w wysokiej rozdzielczości (na przykład jest to profil przyjęty przez format pamięci Blu-ray Disc i usługę transmisji DVB HDTV).

Plasterki B są na przykład dozwolone tylko w profilu głównym i wyżej. Można ich używać do oszczędzania przepustowości, ale trudniej je dekodować, dlatego niektóre urządzenia mogą ich nie obsługiwać.

Co to ma wspólnego z jakością?

Profil tylko pośrednio wpływa na jakość. Niektóre funkcje wyższych profili mogą umożliwić uzyskanie tej samej jakości przy mniejszych rozmiarach plików w porównaniu do niższych profili.

Na przykład, kodowanie entropijne CABAC ( główne i wysokie ) jest bardziej wydajne niż CAVLC ( linia bazowa ). Jest również bardziej obliczeniowo bardziej intensywny. Tak więc, jeśli dasz enkoderowi określoną prędkość transmisji, będzie on w stanie stworzyć lepszą jakość wideo za pomocą CABAC niż z CAVLC, ponieważ osiąga znacznie lepszą kompresję.

Wyjaśnia to również, dlaczego osiągnięto mniejszy rozmiar pliku za pomocą opcji Wysoki profil - oczywiście w jakiś sposób ustawiłeś stały poziom jakości, a koder może użyć bardziej zaawansowanych technik kompresji, aby utworzyć plik wideo o tej samej jakości co profil podstawowy , ale o mniejszym rozmiarze rozmiar.

Więc… którego powinieneś użyć?

Kilka podstawowych zasad:

  • Profil podstawowy, jeśli kierujesz reklamy na stare urządzenia mobilne
  • Główny lub wysoki profil, jeśli masz na myśli transmisję strumieniową w Internecie, przechowywanie długoterminowe, komputery PC lub Mac, tworzenie Blu-ray itp.
slhck
źródło
8
Odkąd zostało to napisane, prawie wszystkie smartfony, w tym Android i inne urządzenia, mają teraz profil główny, a wiele gra na wysokim poziomie. Na przykład obsługa wysokiego profilu jest obsługiwana przez większość urządzeń, które twierdzą, że odtwarzają treści w wysokiej rozdzielczości. Prawie na pewno możesz polegać na głównym lub wyższym. Linia bazowa była wysoce kaleką wersją H. 264 zaprojektowaną dla ograniczonych urządzeń sprzed dziesięcioleci.
thomasrutter
Nie wszyscy mają najnowszy smartfon. Android nadal zaleca korzystanie z profilu podstawowego . To samo dotyczy iOS . Oczywiście niektóre (najbardziej nowe) urządzenia obsługują wyższe profile, ale jeśli chcesz pozostać kompatybilny ze sprzętem niższej klasy, musisz to wybrać. Ale zredagowałem swoją odpowiedź, aby odzwierciedlić to, co mówisz.
slhck
Ciekawe - wbudowany odtwarzacz od dłuższego czasu obsługuje dla mnie main, ale masz rację - nie możesz na tym polegać. Możesz jednak polegać na zewnętrznych odtwarzaczach oprogramowania dla głównego i wysokiego profilu, na przykład odtwarzacze takie jak MX Player obsługują oprogramowanie dla wyższych profili - o ile jest ono oparte na architekturze ARM i ma wystarczająco wysoką wydajność procesora.
thomasrutter
Pamiętaj, że od 2016 r. Zdjęcia Google podczas wykonywania kopii zapasowych konwertują przesłane filmy, które zostały nagrane na Androidzie Nexus 6 w profilu High na profil Baseline (w trybie tworzenia kopii zapasowych „wysokiej jakości” „bezpłatnej nieograniczonej przestrzeni dyskowej”)
nealmcb
Nadal najlepsze informacje, jakie przeczytałem na ffmpeg w 2017 roku. WIELKI POST.
typeoneerror