Jestem taki zdezorientowany ... jaka jest różnica między kodekiem audio / wideo (który najwyraźniej jest skrótem dla „enkodera / dekodera”, coś w rodzaju tego, jak „modem” jest tak naprawdę „modulatorem / demodulatorem”) a audio / format wideo?
(Czy w ogóle używam właściwej terminologii?)
tj .: Jaka jest różnica między powiedzeniem czegoś, że jest „MPEG-4”, a powiedzeniem, że używa kodeka „DivX”? Dlaczego Windows Media Player czasami uruchamia .mpg
pliki, a czasem nie?
Które z poniższych są kodekami, które są formatami plików, a które nie?
- Quicktime MOV
- MPEG (1, 2, 3, 4)
- WMV
- FFmpeg
- AVC
- Xvid
- DivX (czym różni się od palindromu, Xvid?)
- H.264
video
codec
file-format
video-codecs
Mehrdad
źródło
źródło
Odpowiedzi:
Niektóre główne definicje:
Jak widać, musimy tutaj wyjaśnić kilka rzeczy.
Co to jest kodek?
Kodek jest skrótem od koder / dekoder, który w zasadzie tylko oznaczają: Dane generowane przez koder zawsze mogą być dekodowane przez odpowiedni dekoder. Zdarza się, że dotyczy to wideo, audio, ale możesz również pomyśleć o kryptografii (koder potrzebuje odpowiedniego dekodera, aby wyświetlić zaszyfrowaną wiadomość).
Obecnie, gdy określony jest kodek wideo, instytucje, które biorą w nim udział, zwykle określają tylko składnię standardu. Na przykład powiedzą: „Format strumienia bitów musi być taki”, „
0x810429AAB
Tutaj zostanie przetłumaczony na to” itp. Często dostarczają koder i dekoder referencyjny, ale w jaki sposób koder jest następnie zapisywany w celu dopasowania do takiego format całkowicie zależy od producentów.To jest powód, dla którego znajdziesz tak wiele koderów dla tego samego kodeka, a niektóre nawet komercyjne.
Przykład przypadku - H.264
Zanim pomieszamy terminologię, weźmy przykład. Rozważ przypadek dotyczący H.264 . Nazwa standardu to H.264 - to nie jest nazwa rzeczywistego kodera. Mainconcept jest bardzo dobrym komercyjnym koderem, podczas gdy x264 jest darmowym i otwartym oprogramowaniem. Oba twierdzą oczywiście, że zapewniają dobrą jakość.
Sam fakt, że możesz zoptymalizować kodowanie, stanowi tutaj konkurencję. Oba kodery dostarczają ustandaryzowany strumień bitów, który zawsze można dekodować za pomocą dekodera zgodnego z H.264.
Podsumowując
Podsumowując, powiedzmy, że koder:
Strumień bitów jest następnie multipleksowany do kontenera.
Dekoder:
Oba są zgodne ze standardem kodeków. To wszystko!
Aktualne kodeki
Obecnie prawdopodobnie znajdziesz tylko filmy zakodowane przy użyciu kodeków, które wymienię poniżej. Co ciekawe, prawie wszystkie z nich zostały utworzone przez grupę Motion Picture Experts Group (MPEG). Ale są też inne, wolne od opłat, kodeki, np. Te utworzone przez Google lub Alliance for Open Media, które są konkurencyjne w stosunku do standardów MPEG.
Zauważ, że „MPEG” może odnosić się zarówno do kodeków, jak i do kontenerów, jak zobaczysz poniżej. To dodaje zamieszanie, ale wiedz tylko, że sam „MPEG” nic nie znaczy, np. „Mam plik w formacie MPEG” jest bardzo niejednoznaczny ”.
MPEG-2
MPEG-2 jest dość stary. Jego pierwsza publiczna wersja pochodzi z 1996 roku. Wideo MPEG-2 jest najczęściej używane do nadawania płyt DVD i telewizji, np. DVB-T lub satelitarnych oraz starszych aplikacji, w których ważna jest kompatybilność. Filmy MPEG-2 najczęściej znajdują się w kontenerze .MPG .
MPEG-4 część 2
Prawdopodobnie jest to ten, który był używany głównie do kodowania filmów w Internecie w połowie 2000 roku, ale w międzyczasie został zastąpiony. Oferuje dobrą jakość przy praktycznych rozmiarach plików, co oznaczało, że można nagrać cały film o długości 90 minut na płycie CD o pojemności 600 MB (podczas gdy w przypadku formatu MPEG-2 potrzebna byłaby płyta DVD, zobacz moją odpowiedź tutaj ). Nie działa już tak dobrze w przypadku treści HD lub 4K.
Niektóre kodery, które wyprowadzają wideo MPEG-4 część 2, to DivX , jego otwarty program XviD i Nero Digital .
Filmy MPEG-4 część 2 najczęściej pochodzą z kontenera AVI , ale MP4 jest również często widywany.
MPEG-4 część 10 / AVC / H.264
Jest to również znane jako MPEG-4 Advanced Video Coding (AVC) lub H.264 ; jest to obecnie najczęściej używany kodek. Zapewnia dobrą jakość przy małych rozmiarach plików i dlatego doskonale nadaje się do wszelkiego rodzaju filmów do Internetu lub urządzeń mobilnych. H.264 znajdziesz w prawie wszystkich nowoczesnych aplikacjach, od telefonów po kamery. Na dyskach Blu-ray wideo jest teraz kodowane w H.264.
Niektóre kodery to: x264 , NVENC (od NVIDIA), Mainconcept . Filmy najczęściej pochodzą z kontenerów MP4 , MKV lub MOV .
HEVC / H.265
Nazywany także MPEG-H Part 2, jest to następca MPEG-4 Part 10 / AVC / H.264. Ma na celu uzyskanie wyższych rozdzielczości (do 8 KB ) i może zaoferować do 50% wyższą wydajność kodowania (pod względem jakości w porównaniu z przepływnością) w porównaniu do H.264 (patrz na przykład ten artykuł ).
Standard został opublikowany w 2013 roku i powoli kodek zaczyna być coraz częściej wykorzystywany, np. Do transmisji wideo IPTV lub online. HEVC jest także używany przez Apple do przechowywania filmów i zdjęć (przy użyciu HEIF ) na iOS. Jednak fakt, że istnieje wiele pul patentowych związanych z HEVC, powoduje, że wiele firm (prawie wszystkie oprócz Apple) przechodzi na alternatywy bez tantiem. HEVC nie jest również obsługiwane natywnie przez wszystkie przeglądarki, przez co nie nadaje się do transmisji strumieniowej w Internecie.
Najbardziej znanym koderem jest x265 . Jest też NVENC . Filmy zwykle są dostarczane w pojemnikach MP4 .
VP9 i AV1
VP9 (następca VP8) to kodek opracowany głównie przez Google. Jest otwarty i nieodpłatny oraz zaimplementowany w wielu przeglądarkach . Jego jakość jest prawie tak dobra jak HEVC, a czasem nawet lepsza (patrz ten artykuł Netflix). VP9 jest tym, co dostajesz, gdy oglądasz YouTube w przeglądarce, która go obsługuje.
VP9 można zakodować za pomocą kodera libvpx i często jest on dostępny w kontenerach WebM lub MKV .
Niektóre firmy połączyły siły, aby stworzyć jeszcze silniejszego konkurenta dla HEVC - ale jako nieodpłatna alternatywa. AV1 będzie następcą VP9 i opiera się na tym, co miało stać się VP10. Jest wspierany przez Alliance for Open Media (założony przez Amazon, Cisco, Google, Intel, Microsoft, Mozilla i Netflix). Przeczytaj więcej na ten temat tutaj .
Libaom koder może być używany do generowania strumieni bitów AV1, ale jest eksperymentalnym.
Co to jest format (kontener)?
Do tej pory objaśnialiśmy tylko surowy „strumień bitów”, który w zasadzie jest po prostu surowymi danymi wideo. Możesz faktycznie oglądać wideo, używając tak surowego strumienia bitów. Ale w większości przypadków to po prostu za mało lub niepraktycznie.
Dlatego musisz owinąć wideo w pojemniku. Istnieje kilka powodów, dla których:
Z tych wszystkich powodów wymyślono formaty kontenerów, niektóre proste, inne bardziej zaawansowane. Wszyscy oni „zawijają” strumień bitów wideo w inny strumień bitów.
Kontener zsynchronizuje klatki wideo i audio zgodnie ze swoim znacznikiem czasu prezentacji (PTS), dzięki czemu będą wyświetlane dokładnie w tym samym czasie. W razie potrzeby zajmowałoby się również dodawaniem informacji do serwerów przesyłania strumieniowego, aby serwer przesyłania strumieniowego wiedział, kiedy wysłać część pliku.
Rzućmy okiem na niektóre popularne pojemniki.
Popularne pojemniki
Znajdziesz filmy w większości owinięte w następujących pojemnikach. Są też inne mniej popularne, ale jak powiedziałem, przeważnie są to:
AVI
Audio Video Interleave - jest to najbardziej podstawowy pojemnik, służy tylko do przeplatania audio i wideo. Został napisany w 1992 roku i jest nadal używany, ale uważany za dziedzictwo, więc nie używaj go więcej.
MP4
jest również znany jako MPEG-4 część 14 i jest oparty na formacie pliku QuickTime. Jest to format początkowy dla wideo H.264, ale obejmuje również HEVC, MPEG-4 Part 2 i MPEG-2.
Ten kontener może również owijać tylko audio, dlatego znajdziesz tak wiele plików .mp4, które nie są filmami, ale audio zakodowane w AAC , również w plikach .m4a (tylko inne rozszerzenie). Rozszerzenie .m4v jest zwykle pobierane dla strumieni bitów wideo.
MKV i WebM
Matroska Video (MKV) to otwarty i darmowy format plików, który jest często spotykany obecnie, ponieważ obsługuje w zasadzie dowolny kodek, od H.264 do VP9, i oczywiście także wiele kodeków audio.
WebM opiera się na MKV i jest używany przede wszystkim do wideo VP9 i audio Opus - jest to pojemnik z wyboru do strumieniowego przesyłania wideo w Internecie, gdy używane są te kodeki.
Ogg
Kontener Ogg jest preferowanym kontenerem dla kodeka wideo Theora (i kodeka audio Vorbis ), również utworzonego przez Fundację Xiph.Org. Jest także darmowy i open source (podobnie jak kodek).
FLV
Format wideo Flash został stworzony przez Adobe do użytku w aplikacjach do przesyłania strumieniowego. Nie jest już tak często używany, ponieważ sposób przesyłania strumieniowego zmienił się znacznie w ciągu ostatnich lat.
Popularne kodeki i formaty
libavcodec
ilibavformat
bibliotekach odpowiednio do tworzenia kodeków i kontenerów. Na tej podstawie opiera się większość narzędzi wideo, które dziś znajdziesz.Na marginesie:
Chyba kiedyś wolałbym używać „kodeka” i „kontenera” zamiast „formatu”, aby uniknąć nieporozumień. Format może teoretycznie być dowolny, ponieważ zarówno kodeki, jak i kontenery określają format (tj. Sposób reprezentacji danych).
Biorąc to pod uwagę, terminologią FFmpeg byłoby użycie „formatu” dla kontenera. Wynika to również z rozróżnienia między:
libavcodec
, biblioteka do kodowania / dekodowanialibavformat
, biblioteka dla kontenerówźródło
Zasadniczo „format” mediów to tak naprawdę kontener zawierający strumień audio (niektórych kodeków audio) i strumień wideo (niektórych kodeków wideo), a czasem dodatkowe informacje. większość plików ma typ pliku oparty na kontenerze, a nie na kodeku
FFmpeg nie jest ani kontenerem, ani kodekiem - to wszechstronny zestaw bibliotek, kodeków i oprogramowania do konwersji plików, który leży u podstaw wielu konwerterów i odtwarzaczy muzycznych.
H.264 / AVC i xvid / divx są kodekami
AVI (które to pliki divx / xvid), MP4, MPEG są kontenerami.
Nie jestem pewien co do Quicktime Mov - .mov to kontener, QuickTime to kodek.
źródło
istnieją kodeki i kontenery (formaty plików). Kodek opisuje sposób kodowania / dekodowania danych. Drugi opisuje sposób umieszczenia zakodowanych danych w pliku.
Większość odtwarzaczy multimedialnych obsługuje wiele typów kodeków i kontenerów. Jest to mylące, dlatego sugeruję przeczytanie moich referencji, aby uzyskać więcej informacji
źródło
Format to nazwa nadana określonemu typowi formatu pliku i typowi kompresji (większość wideo jest kompresowana w celu zmniejszenia rozmiaru), a kodek jest tym, co faktycznie może go skompresować, odczytać i przetłumaczyć na wideo, które widzisz przez jego dekompresję . Innymi słowy, jeden jest typem pliku, a drugi to oprogramowanie.
Do większości filmów zwykle odnosimy się po nazwie formatu, więc Quicktime MOV, MPEG i WMV są formatami.
FFmpeg (nigdy o tym nie słyszałem) wydaje się być nazwą oprogramowania do konwersji różnych formatów na inne formaty.
AVC i H.264 są takie same i są formatem do kodowania wideo HD.
DivX to dostępny w handlu kodek.
Xvid to kodek dla MPEG-4.
źródło