W jaki sposób YouTube koduje moje przesłane pliki i jakiego kodeka powinienem użyć do przesłania?


25

Powiązane z tym, jakie kodeki / formaty są odpowiednie do nagrywania w pełnym ruchu na YouTube? Zastanawiam się dokładnie, jak mogę oczekiwać, że YouTube będzie obsługiwał moje filmy. Wiem, że mają raczej gorliwą konfigurację, która generuje wiele kopii mojego uploadu w różnych rozdzielczościach; 1080p, 720p i 480p, a przynajmniej mobilny.

Jakich kodeków używają? Jako producent mam opcję pobrania pliku jako MP4; jednak zauważam, że zewnętrzny program do pobierania (który jest bardzo podejrzany i gburowaty) sprowadza pliki jako FLV. Zasadniczo zastanawiam się, czy mój kodek zostanie zachowany lub nadpisany przez H.264 lub cokolwiek innego. Biorąc pod uwagę ich niesamowitą kompatybilność między urządzeniami, zakładam, że albo używają bardzo powszechnego standardu, albo wielu kodeków dla każdego filmu.

Więc jakiego kodeka mogę się spodziewać w moich filmach, a jeśli to zależy, od czego to zależy? Czy powinienem dostosować własne kodowanie, aby „grało się dobrze” z kodekiem Youtube, czy ma to znaczenie pod względem jakości? Wiem, że mogę wrzucić prawie wszystko na Youtube i to zajmie, więc najbardziej interesuje mnie jakość wideo.


oto narzędzie, aby zobaczyć dostępne formaty filmu: h3xed.com/web-and-internet/…
akostadinov

Odpowiedzi:


31

Kilka ogólnych informacji o używanych formatach:

YouTube używa 4 formatów kontenerów i 4 różnych kodeków. Zależy od popularności wideo, jakie kodeki są używane w twoim filmie (patrz poniżej dlaczego). Zasadniczo każdy z przesłanych przez Ciebie filmów zostanie zakodowany w formacie h.264 i będzie zmiksowany w kontenerze .flv i .mp4. To standard i tak będzie w przypadku każdego filmu. Chociaż .flv będzie używany tylko dla rozdzielczości poniżej 720p. Oznacza to, że tylko 360p i 480p będą istnieć w kontenerze .flv. Chociaż każdy film poniżej 720p będzie również miał dostępną wersję MP4. W przypadku 240p YouTube używa również 3gp, który jest raczej starym kodekiem (opartym na MPEG-4 część 2 (nie mylić z MPEG4 część 10 aka h.264) przeznaczonym na urządzenia mobilne (na długo przed erą smartfonów), jest dostępny kontener .3gpp.

Innym używanym kodekiem jest VP8, który ma format kontenera WebM. WebM to format opracowany przez Google i miał być standardowym kodekiem wideo dla HTML5, jego obsługa jest już całkiem dobra w większości nowoczesnych przeglądarek. WebM został wprowadzony w wersji HTML5 YouTube. YouTube koduje tylko niektóre filmy w WebM po ich przesłaniu, a przeważnie tylko popularne filmy (przechodząc przez filmy, które widziałem zakodowane w WebM), więc nie jest pewne, czy Twój film będzie obecny w WebM. Choć zmienia się to wraz z uzyskaniem przez WebM większego wsparcia.

Do tej pory YouTube obsługuje również VP9 w WebM, ale jak dotąd tylko chrome obsługuje ten kodek (od 06/2015). Wraz z VP9 wprowadzono także obsługę kodeka audio Opus (oprócz AAC, który jest używany we wszystkich innych kontenerach).

W związku z połączonym pytaniem (może powinny zostać połączone?)

Jakiego kodeka / kontenera należy użyć do przesyłania?

To zależy, jeśli jesteś ograniczony / zaniepokojony szybkością przesyłania, użyj h.264 Level 3.1 / 4.1 z Main Profile for SD lub High Profile for HD. YouTube zaakceptuje to dobrze i będzie ładnie wyglądać po zakodowaniu przez serwery YouTube. Zwykle zalecałbym bitrate ~ 4-5 Mbit / s dla materiału 720p i ~ 8-9 Mbit / s dla 1080p. Dla 4k przejdź na ~ 15 Mb / s. Zazwyczaj jest to dobra równowaga między rozmiarem a jakością. Jeśli chcesz uzyskać lepszą jakość, wybierz wyższy bitrate, a jeśli chcesz mniejszy film, wybierz mniejszy bitrate.

Pamiętaj jednak, że YouTube ZAWSZE koduje Twój film po przesłaniu, bez względu na to, jakiego kodeka i ustawień używasz. Jeśli więc chcesz teoretycznie najlepszej jakości przesyłania, wybierz bezstratny kodek do przesłania lub przynajmniej wizualnie bezstratny. Zobacz YouTube jako ostateczny wynik w formacie dostawy / klienta, a przesyłanie do YouTube jest ostatnim krokiem w produkcji, a podczas produkcji chcesz pozostać bez strat. Ale pamiętaj, że to wszystko tylko teoretyczna rzecz, praktycznie powiedziałbym, że to naprawdę nie ma znaczenia, ponieważ mówimy o YouTube, a nie o transmisji telewizyjnej lub kinie.

Ale jeśli naprawdę chcesz to zrobić „perfekcyjnie”, użyj kodeka produkcyjnego, a nie kodeka konsumenckiego, takiego jak h.264. MJPEG byłby do tego dobrym kodekiem, YouTube zdecydowanie obsługuje to w kontenerze .avi lub .mov. MJPEG jest stratnym kodekiem, ale jakość obrazu będzie taka sama jak źródła (jeśli wybierzesz wystarczająco wysoką jakość, jest to praktycznie JPEG jako kodek wideo). Korzystanie z prawdziwego bezstratnego kodeka byłoby moim zdaniem marnotrawstwem miejsca na dysku twardym i przepustowości.

Ale jeśli chcesz przesłać swój film naprawdę bezstratnie i nie zależy ci na czasie przesyłania, zalecam użycie standardowego kodeka QuickTime, ponieważ powinien on być prawie w całości obsługiwany przez YouTube (pamiętaj, że nie wszystkie z nich są bezstratne, h264 jest również standardowy kodek QuickTime). Chociaż YouTube nie określa, które kodeki QuickTime są obsługiwane, niestety. Myślę, że powinna działać animacja lub JPEG2000. Oba kodeki mogą być w 100% bezstratne.

Jeśli chodzi o liczbę klatek na sekundę, jeśli możesz wybrać, użyj 25 klatek na sekundę (do tej pory YouTube obsługuje także filmy 50 i 60 klatek na sekundę, więc prawdopodobnie także 30 klatek na sekundę) podczas nagrywania / animacji, YouTube lubi to najbardziej (częstotliwość klatek używana dla każdego filmu), ale jeśli twój materiał filmowy ma już inną liczbę klatek na sekundę, trzymaj się tego i nie interpoluj w górę ani w dół. YouTube zajmie się konwersją za Ciebie i ogólnie robi to lepiej niż koder. Każdego dnia muszą radzić sobie z wszelkiego rodzaju frameratami i bardzo dobrze rozwiązali ten (właściwie bardzo skomplikowany) problem.

Audio:

Do audio użyj PCM, jeśli chcesz pozostać bezstratny z dźwiękiem, ale znowu jest to naprawdę tylko teoretyczna poprawa jakości. AAC zwykle wykonuje tę samą jakość pracy (subiektywnie) i będzie mniejszy. Polecam bitrate co najmniej 192 kb / s dla AAC. Wpływ na rozmiar zwykle nie jest tak duży jak kodek wideo, więc możesz także wybrać 320 kb / s. YouTube konwertuje audio do ~ 24 kb / s (Mobile aka 3 gp) ~ 64 kb / s (240p), ~ 128 kb / s (360p / 480p) i ~ 192 kb / s (720p +) przy użyciu kodeka AAC i Opus (tylko WebM).


3
Zgadzam się na tę odpowiedź. Ale jest praktyczny limit: prędkość wysyłania. Ile czasu zajmuje przesyłanie? Cały weekend, noc lub kilka godzin do końca dnia pracy. Sam nałożyłem limit na 2 GB na 10 minut filmu, co w moim przypadku wymaga około 4 godzin czasu przesyłania. Ale czy to naprawdę ogranicza jakość? Moje wideo o pojemności 2 GB ma szybkość transmisji 30 Mbit / s, którą YouTube konwertuje na 3 Mbit / s. Bezstratne kodowanie wydłużyłoby czas przesyłania, ale wyjście YouTube nadal wynosiłoby 3 Mbit / s. Proszę samodzielnie ustawić swoje osobiste limity.
Fred42vid

Pewnie dlatego wyjaśniłem (mam nadzieję), że jest to teoretyczne iw żaden sposób praktyczne. H.264 powinien być zalecany w prawie wszystkich przypadkach. Jedynym faktycznym praktycznym przypadkiem użycia MJPEG, o którym mogę pomyśleć, jest pojawienie się pasów kolorów przy pierwszym kodowaniu h.264, które pogorszy się przy drugim kodowaniu z YouTube.
PTS

1
YouTube obsługuje wysoki profil h.264, więc powinieneś go zawsze używać. Główny profil dla treści SD jest głupi. Pozostawienie 8x8dct jest zawsze złym pomysłem. W wersji x264 włączenie 8x8dct jest najbardziej wydajnym kompromisem czasu procesora dla lepszej jakości w zależności od rozmiaru pliku (inaczej szybkość: zniekształcenie lub RD).
Peter Cordes,

2
H.264 będzie wyglądał znacznie lepiej przy tej samej szybkości transmisji niż MJPEG. Jeśli chcesz uzyskać lepszą jakość, po prostu zwiększ bitrate (lub ustawienie jakości w stałej jakości zamiast docelowego trybu bitrate). Możesz przejść do bezstratnej wersji h.264, jeśli nie masz nic przeciwko przesyłaniu dużego pliku. Prawdopodobnie będzie mniejszy niż bezstratny j2k. Oba są jednak doskonałej jakości, ponieważ to właśnie oznacza bezstratne.
Peter Cordes,

1
W przypadku audio IDK, jeśli youtube obsługuje FLAC lub nie. Jeśli tak, to byłby to twój wybór dla bezstratnych. W przeciwnym razie tak, AAC o wysokiej przepływności wykonany z dobrym koderem. ( -c:a libfdk-aac, nie jest domyślnym faacani wbudowanym aackoderem w ffmpeg.)
Peter Cordes

5

Jaki format wyjściowy YT ich wideo zależy od różnych czynników. W przypadku większości zwykłych filmów używają strumieni wideo zakodowanych w H264 (AAC lub MP3 dla audio) w postaci plików kontenerów MP4 i FLV.

Są to tylko pojemniki zawierające zakodowane dane wideo - chociaż format zakodowany w H264 nie gwarantuje w przypadku plików FLV (lub teoretycznie w przypadku plików MP4), ponieważ mogą one również zawierać Sorenson Spark, On2 VP6 i inne (szczególnie w przypadku starszych filmów) ).

Pliki FLV są używane, ponieważ gwarantuje się, że można je odtwarzać za pomocą odtwarzacza Flash.

Oprogramowanie do pobierania nie jest tak naprawdę określające format - po prostu pobierają to, co jest dostępne za pomocą itag„wewnętrznego” adresu URL wideo (nie tego w przeglądarce), aby zidentyfikować opcje. Jeśli opcjonalnie przekonwertują wideo, będzie to funkcja, ale niezwiązana z formatami YT.

Oprócz nich istnieją także inne formaty, takie jak 3GP, WEBM, a także filmy 3D. Niektórzy celują w telefony i nowy standard HTML5 (wdrażany w miarę mówienia), który może odtwarzać filmy bezpośrednio za pomocą HTML (tj. Bez Flash Playera).

Ale wracając do najpopularniejszych formatów: pod względem jakości nie ma to tak naprawdę znaczenia. Jeśli plik FLV zawiera H264, możesz go odtworzyć tak dobrze, jak plik kontenera MP4 za pomocą odtwarzacza VLC Player np. VideoLAN . Jeśli plik FLV nie zawiera H264, a chcesz go jako kontener MP4 z H264, musisz go przekodować, co oznacza utratę jakości.

Ponieważ YT wydaje się obecnie preferować H264, sugerowałbym również przesłanie w tym formacie (zobacz informacje o rozmiarach i przepływnościach, aby uniknąć przekodowywania w celu uzyskania najlepszej rozdzielczości).



0

Twoje pytanie brzmi: „W jaki sposób YouTube koduje moje przesłane pliki i jakiego kodeka powinienem użyć do przesłania?”.

Zagłębiając się w twoje pytanie, widzę: „Czy powinienem dostosować własne kodowanie, aby„ grało się dobrze ”z kodekiem Youtube, czy ma to znaczenie pod względem jakości? Wiem, że mogę wrzucić prawie wszystko na Youtube i to zajmie, więc Najbardziej interesuje mnie jakość wideo. ”.

Odpowiedź jest taka, że ​​YouTube używa Lavf57.25.100 do kodowania nowych filmów, podczas gdy filmy powyżej kilku lat zostały zakodowane za pomocą zastrzeżonego kodera (który nie ma w nazwie identyfikatora „Lavf57.25.100”, ale zamiast tego ma zdanie: „Wyprodukowano plik IsoMedia” przez Google, 5-11-2011 ”). Stare filmy wideo nie zostały ponownie zakodowane po zmianie algorytmu.

Dopuszczalne jest używanie wielu różnych kodeków, YouTube zaleca H.264 - patrz tutaj: https://support.google.com/youtube/answer/1722171?hl=pl .

Z jakiegoś powodu nie pytasz o kontener (co nie jest tym samym co kodek). Zakładasz również, że 1080P będzie dostępny i nie pytasz o najważniejszą rzecz - Bitrate (a następnie Resolution).

Jeśli przesyłasz film w rozdzielczości 1080P przy 60 klatkach na sekundę, wówczas maksymalna dostępna rozdzielczość to 720p (przy 60 klatkach na sekundę, na urządzeniu mobilnym, zdolnym do 1080p), przesłanie filmu w rozdzielczości 1080P przy 29,97 klatkach na sekundę pozwala na oglądanie 1080p na urządzeniu mobilnym.

To, co JEST ważne, to szybkość transmisji i rozdzielczość, jeśli celem jest „jakość”. Nie można upscale ani używać bezstratnego oszukiwania, ponieważ YouTube przeprowadza „Test kompresji”, aby określić, jak bardzo mogą zmiażdżyć Twój film przy minimalnej degradacji - przesyłaj papkę, a będzie to bardzo skompresowana papka, przesyłaj wysoką rozdzielczość i wysoką przepływność, a następnie YouTube zrezygnuje z kruszenia i zapewni znacznie lepsze wrażenia wizualne.

Zobacz: https://support.google.com/youtube/answer/1722171?hl=pl .

Zauważ, że różne rozdzielczości i „oczekiwania dotyczące jakości”. W przypadku filmów 4K o niskich oczekiwaniach można przesyłać filmy wideo o szybkości transmisji bitów wynoszącej 35–45 Mb / s, ale jeśli jesteś „producentem”, a jakość jest Twoim celem, potrzebujesz zarówno wyższej liczby klatek na sekundę, jak i wykorzystania co najmniej 66–85 Mb / s Szybkość transmisji aparatu (przed bardzo delikatnym skompresowaniem).

Jeśli przeskalujesz wideo w niskiej rozdzielczości i użyjesz nieskompresowanego kodeka, mając nadzieję na uzyskanie najlepszej możliwej jakości, zostaniesz złapany (i zredukowany do papki).

Nagrywaj przy użyciu kamery o jakości produkcyjnej, wysokiej prędkości klatek i szybkości transmisji bitów, bardzo delikatnie skompresowanej (Ffmpeg Q = <10), aby uzyskać najlepsze wyniki - „kodek” (twoje słowa) nie jest jedynym decydującym czynnikiem (choć odradzam stary).

Ffmpeg obsługuje kontenery .MP4 i kodek H.264, więc używaj ich.

Ludzie często narzekają, że YouTube rujnuje swoje filmy, problem polega na tym, że nie przesłali wystarczająco wysokiej jakości, aby „wyzwolić przełącznik” i spowodować, że kompresor YouTube delikatnie depcze po twoim przesłaniu. Możliwe są doskonałe podglądanie pikseli. Obowiązuje zasada GIGO.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.