Codec nedir (örn. DivX?) Ve Dosya Formatından (örn. MPG) farkı nedir?


95

Kafam çok karıştı ... bir ses / video codec'i (görünüşe göre "kodlayıcı / kod çözücü" için bir kestirme yol), "modem" in gerçekten "modülatör / demodülatör" biçiminde olduğu gibi) ve ses / ses arasındaki fark nedir? video formatı?
(Doğru terminolojiyi kullanıyorum bile mi?)

Örneğin: “MPEG-4” olan bir şey söylemek ile “DivX” kodeki kullanan bir şey söylemek arasındaki fark nedir? Windows Media Player neden bazen .mpgdosyaları çalıştırıyor , bazen çalışmıyor?

Ayrıca, aşağıdakilerden hangisi codec, hangileri dosya formatı ve hangileri değil?

  • Quicktime MOV
  • MPEG (1, 2, 3, 4)
  • WMV
  • FFmpeg
  • AVC
  • Xvid
  • DivX (palindromundan Xvid'in farkı nedir?)
  • H.264

2
6 yıl sonra kendi soruma bakmak ve tek düşünebildiğim "bunu nasıl bilmiyorsun?"
Mehrdad,

1
Hepimiz bir yerden başladık. ;)
Hashim

Yanıtlar:


146

Bazı ana tanımlar:

  • Bir kodek (örneğin, H.264, HEVC, VP9) yalnızca video veya ses bölümünden sorumludur ve bir veya daha fazla kodek bir kaba birleştirilebilir.
  • Bir kapsayıcı (örneğin, MP4, MKV) onları bir arada tutmaktan sorumludur ve bu genellikle seçtiğiniz medya oynatıcınızda açtığınız şeydir.
  • Belirli bir kodlayıcı (örneğin, x264, libvpx), bir giriş akımını kodek uyumlu bir bit akışına dönüştürmekle sorumludur. Belirli bir kodek için genellikle çoklu kodlayıcılar vardır.

Görebileceğiniz gibi burada birkaç şeyi açıklamamız gerekecek.

Kodek nedir?

Bir codec kodlayıcı / kod çözücü için kısadır, bu temelde sadece aşağıdakileri ifade eder: Bir kodlayıcı tarafından üretilen veri her zaman uygun bir kod çözücü tarafından kodlanabilir. Bu, video, ses için geçerli olur, ancak kriptografi hakkında da düşünebilirsiniz (bir kodlayıcının şifreli bir mesajı görüntülemek için uygun bir kod çözücüye ihtiyacı vardır).

Günümüzde, bir video codec'i belirtildiğinde, içinde yer alan kurumlar genellikle sadece standardın sözdizimini belirler . Örneğin şöyle diyecekler: "Bit akımı biçimi şöyle olmalıdır", " 0x810429AABBurada buna çevrilecek", vb. Sık sık, bir referans kodlayıcı ve kod çözücü sağlarlar, ancak kodlayıcının böyle bir eşleşmeye uyması için nasıl yazılır? format tamamen üreticilere aittir.

Aynı codec bileşeni için bu kadar çok kodlayıcı bulabilmenizin nedeni budur, bazıları da ticaridir.

Bir vaka örneği - H.264

Terminolojiyi karıştırmadan önce, bir örnek alalım. H.264'ün durumunu düşünün . Standardın adı H.264 - gerçek kodlayıcının adı değil. Ana fikir çok iyi bir ticari kodlayıcıdır, oysa ki x264 serbest ve açık kaynak kodludur. Her ikisi de elbette iyi kalitede olduğunu iddia ediyor.

Şifrelemeyi optimize edebileceğiniz tek gerçek, burada bir rekabet yaratıyor. Her iki kodlayıcı, her zaman H.264 uyumlu bir kod çözücü tarafından kodu çözülebilen standart bir bit akışı sunar.

Özetlemek

Yani, sonuçta, diyelim ki enkoder şöyle olacaktır:

  • video kareleri al
  • geçerli bir bit akımı üret

Bit akımı daha sonra bir kaba çoğaltılır.

Kod çözücü:

  • bu geçerli bit akışını al
  • video kareleri ondan yeniden

Her ikisi de bir codec standardına uygundur. Bu kadar!


Mevcut Codec'ler

Bugünlerde muhtemelen yalnızca aşağıda bahsettiğim kodekler ile kodlanmış videoları bulacaksınız. İlginçtir ki, neredeyse tamamı Motion Picture Experts Group (MPEG) tarafından yaratılmıştır . Ancak, Google veya MPEG standartlarına rakip olan, örneğin Google veya Open Media için İttifak tarafından oluşturulanlar gibi telif hakkı olmayan diğer kodlayıcılar da vardır.

"MPEG" in, aşağıda göreceğiniz gibi hem kodeklere hem de konteynerlere başvurabileceğini unutmayın. Bu kargaşaya katkıda bulunur, ancak yalnızca "MPEG" in tek başına bir şey ifade etmediğini biliyorum, örneğin "MPEG formatında bir dosyam var" çok belirsizdir ".

MPEG-2

MPEG-2 oldukça eski. İlk halka açık olan 1996'dan beri. MPEG-2 videosu çoğunlukla DVD'ler ve TV yayınları için kullanılıyor, örneğin DVB-T veya uydu ve uyumluluğun önemli olduğu eski uygulamalar. MPEG-2 videoları çoğunlukla bir .MPG kabında bulunur.

MPEG-4 Bölüm 2

Muhtemelen 2000'lerin ortalarında web için videoları kodlamak için kullanılan muhtemelen bu, ancak bu arada yerini aldı. Pratik dosya boyutlarında iyi bir kalite sunar, bu da 90 dakikalık bir filmi 600 MB'lık bir CD'ye yazabileceğiniz anlamına gelir (MPEG-2 ile bir DVD'ye ihtiyacınız olacaktı, cevabımı burada görün ). Artık HD veya 4K içerik için çok iyi çalışmıyor.

MPEG-4 Part 2 videosu çıkaran bazı kodlayıcılar DivX , açık kaynaklı XviD ve Nero Digital .

MPEG-4 Part 2 videoları çoğunlukla bir AVI kabında gelir, ancak MP4 de sıklıkla görülür.

MPEG-4 Bölüm 10 / AVC / H.264

Bu aynı zamanda MPEG-4 Gelişmiş Video Kodlaması (AVC) veya H.264 olarak da bilinir ; bugün en çok kullanılan codec bileşeni. Küçük dosya boyutlarında iyi kalite sunar ve bu nedenle Internet veya mobil aygıtlar için her türlü video için mükemmeldir. Telefonlardan video kameralara kadar hemen hemen her modern uygulamada H.264'ü bulacaksınız. Blu-ray disklerde, video şimdi H.264'te kodlanmıştır.

Bunun için bazı kodlayıcılar şunlardır: x264 , NVENC (NVIDIA'nın), Mainconcept . Videolar çoğunlukla MP4 , MKV veya MOV konteynerlerinde geliyor.

HEVC / H.265

Ayrıca MPEG-H Bölüm 2 olarak da bilinir, bu MPEG-4 Bölüm 10 / AVC / H.264'ün halefidir. Daha yüksek çözünürlüklerde ( 8K'ye kadar ) hedeflenir ve H.264'e kıyasla% 50'ye kadar daha yüksek kodlama performansı (kalite veya bit hızı açısından) sunabilir ( örneğin bu makaleye bakın ).

Standart 2013 yılında yayınlandı ve yavaş yavaş kodek daha fazla kullanılmaya başlandı, örneğin IPTV veya çevrimiçi video yayınları için. HEVC, Apple tarafından videoları ve görüntüleri ( HEIF kullanarak ) iOS'ta depolamak için de kullanılır . Bununla birlikte, HEVC ile ilişkili çoklu patent havuzlarının mevcut olması, telifsiz alternatiflere geçiş yapan pek çok şirkete (neredeyse tümü Apple hariç) sahiptir. HEVC ayrıca tüm tarayıcılar tarafından yerel olarak desteklenmez ve web akışı için kullanılamaz hale getirir.

En iyi bilinen kodlayıcı x265'tir . NVENC de var . Videolar genellikle MP4 kaplarda gelir.

VP9 ve AV1

VP9 ( VP8'in halefi), esas olarak Google tarafından geliştirilen bir codec bileşenidir. Açık ve telif ücretsiz ve birçok tarayıcıda uygulandı . Neredeyse HEVC kadar iyidir ve bazen daha da iyidir ( bu makaleye Netflix tarafından bakınız ). VP9, YouTube'u destekleyen bir tarayıcıda izlerken elde ettiğiniz şeydir.

VP9, libvpx kodlayıcı ile kodlanabilir ve genellikle WebM veya MKV kaplarında gelir .

Bazı şirketler HEVC'ye daha da güçlü bir rakip oluşturmak için bir araya geldi - ancak telifsiz bir alternatif olarak. AV1 VP9'un halefi olacak ve VP10 olması gerekenlere dayanıyor. Açık Medya İttifakı (Amazon, Cisco, Google, Intel, Microsoft, Mozilla ve Netflix tarafından kurulmuştur) tarafından desteklenmektedir. Oku buradan daha fazla .

Libaom kodlayıcı AV1 bit akışlarını oluşturmak için kullanılabilir, ama yine de deneyseldir.


Bir format (konteyner) nedir?

Şimdiye kadar sadece gerçekten ham video verisi olan ham "bit akışını" açıkladık. Gerçekten devam edebilir ve böyle ham bir bit akımı kullanarak videoyu izleyebilirsiniz. Ancak çoğu durumda bu yeterli değil ya da pratik değildir.

Bu nedenle, videoyu bir kaba sarmanız gerekir. Bunun birkaç nedeni vardır:

  • Belki video ile birlikte biraz ses istiyorum
  • Belki de videoda belirli bir bölüme atlamak istersiniz ("1: 32: 20.12'ye gidin" gibi)
  • Hem ses hem de video mükemmel senkronize edilmelidir
  • Videonun güvenilir bir ağ üzerinden iletilmesi ve önce paketlere bölünmesi gerekebilir.
  • Video kayıp bir ağ üzerinden (3G gibi) gönderilebilir ve daha önce paketlere ayrılabilir.

Bütün bu nedenlerden dolayı, konteyner formatları icat edildi, bazıları basit, bazıları daha gelişmiş. Tüm yaptıkları, video bit akışını başka bir bit akışına "sarmak".

Bir kapsayıcı, video ve ses karelerini , aynı anda görüntülenmelerini sağlayan Sunum Zaman Damganına (PTS) göre senkronize eder. Ayrıca, gerektiğinde akış sunucularına bilgi eklemek için de dikkat eder, böylece akış sunucusu dosyanın ne zaman gönderileceğini bilir.

Bazı popüler konteynerlere bir göz atalım.


Popüler konteynerler

Çoğunlukla aşağıdaki kaplara sarılmış videoları bulacaksınız. Daha az popüler olanlar da var, ama dediğim gibi, çoğunlukla, bunlar:

AVI

Audio Video Interleave - bu en temel kapsayıcıdır, sadece ses ve videoyu birleştirmek için oradadır. 1992'de yazılmıştır ve bugün hala kullanılmaktadır, ancak eski olarak kabul edilir, bu yüzden artık kullanmayın.

MP4

MPEG-4 Part 14 olarak da bilinir ve QuickTime dosya formatını temel alır. Bu, H.264 video için go-to formatıdır, ancak HEVC, MPEG-4 Part 2 ve MPEG-2'yi de sarar.

Bu kapsayıcı yalnızca sesi de sarabilir, bu yüzden video olmayan çok fazla .mp4 dosyası bulursunuz, bunun yerine AAC kodlu ses de .m4a dosyalarında (yalnızca farklı bir uzantıda) bulunur. .M4v uzantısı genellikle video bit akışları için alınır.

MKV ve WebM

Matroska Video (MKV), günümüzde sıkça bulunan açık kaynaklı ve ücretsiz bir dosya formatıdır, çünkü temelde H.264'ten VP9'a ve tabii ki pek çok ses çözücüsünü de içerir.

WebM, MKV'ye dayanır ve öncelikle VP9 video ve Opus ses için kullanılır - bu codec'ler kullanıldığında web akış videosu için tercih edilen kaptır.

Ogg

Ogg kabı, Xiph.Org Vakfı tarafından oluşturulan Theora video kodeki (ve Vorbis ses kodeki ) için de tercih edilen kaptır . Aynı zamanda ücretsiz ve açık kaynaktır (sadece codec bileşeni gibi).

FLV

Flash video formatı, Adobe tarafından akış uygulamalarında kullanılmak üzere oluşturuldu. Artık bu kadar kullanılmaz, çünkü akışın yapılma şekli son yıllarda önemli ölçüde değişmiştir.


Popüler kodekler ve biçimler

Ayrıca, aşağıdakilerden hangisi codec, hangileri dosya formatı ve hangileri değil?

  • Quicktime MOV : .mov , Apple tarafından oluşturulan bir kapsayıcı olan QuickTime Dosya Biçimi'nin dosya uzantısıdır . Bu kap daha sonra MP4 için uyarlandı. Her türlü codec'i taşıyabilir. Quicktime aslında tüm bir medya çerçevesidir, ilgilendiğim kadarıyla herhangi bir codec bileşenini gerçekten belirtmez.
  • MPEG (1, 2, 3, 4) : Motion Picture Experts Group tarafından tanımlanan standartlar. Ayrıntılar için yukarıdaki yazıma bakın.
  • WMV : Windows Media Video. Aslında yine .wmv uzantısını kullanan bir Gelişmiş Sistem Formatı kapsayıcısına sarılmış bir codec bileşeni . Garip, ama bu böyle.
  • FFmpeg : Bu ne codec, ne de bir konteyner değil. Ayrıca, farklı codec'ler ve kaplar arasında dönüşüm sağlayan bir video araçları kütüphanesidir. FFmpeg , sırasıyla kodlayıcı ve kaplar oluşturmak için açık kaynağa libavcodecve libavformatkütüphanelere dayanır . Bugün bulduğunuz video araçlarının çoğu buna dayanıyor.
  • AVC : MPEG-4 Part 10 veya H.264 için eşanlamlı.
  • DivX : MPEG-4 Part 2 videosu için başka bir enkoder tipi.
  • Xvid : MPEG-4 Part 2 videosu için bir tür kodlayıcı. Tabii ki bazı tartışmalara yol açan, açık kaynak kodlu, DivX'in ücretsiz versiyonu.
  • H.264 : MPEG-4 Part 10 veya AVC için eşanlamlı.

Bir yandan not:

Doğru terminolojiyi kullanıyorum bile mi?

Bir zamanlar, yanlış anlamaları önlemek için özel olarak "format" yerine "kodek" ve "kapsayıcı" kullanmayı tercih edersiniz. Her iki codec çünkü biçim teorik şey olabilir ve konteynerler bir biçim belirtin (yani veri temsil edilmelidir nasıl).

Olduğu söyleniyor, FFmpeg terminoloji konteyner için "format" kullanmak olacaktır. Bu aynı zamanda şu arasındaki farktan da kaynaklanmaktadır:

  • libavcodeckodlama / kod çözme kütüphanesi
  • libavformat, konteynerler için kütüphane

33
Şimdi, doğru bir soruyu cevaplamaya çağıran kişi budur. Aferin.
Francesco

1
Harika cevap, ancak Ogg konteyner formatını kaçırdınız.
Ignacio Vazquez-Abrams

7
Bir süredir gördüğüm en harika cevap bu. Harika açıklamalar için çok teşekkürler! :)
Mehrdad

@Mehrdad Konuyla ilgili biraz ışık tutabildiğim için memnunum. Thank you :)
slhck

1
Bazen bir cevapta birden fazla yükseltme yapabilmeyi diliyorum :)
Dolf Andringa

3

Genel olarak bir medya 'formatı' gerçekten bir ses akışı (bazı ses kodeki) ve video akışı (bazı video kodeki) ve bazen ek bilgiler içeren bir kaptır. 'dosya' dosyalarının çoğunda kod çözücülere dayalı değil, kabı temel alan bir dosya türü bulunmaktadır

FFmpeg ne kapsayıcı ne de kodek değildir - pek çok dönüştürücünün ve müzik çaların temelini oluşturan dosyaların dönüştürülmesi için kullanılan çok yönlü bir kitaplık, kodek ve yazılım paketidir.

H.264 / AVC ve xvid / divx kodeklerdir

AVI (divx / xvid dosyaları), mp4, mpeg kapsayıcılardır.

Quicktime mov hakkında emin değilim - .mov bir konteyner, quicktime bir codec.


"Quicktime" kodeği yok. Quicktime, .mov kabını, bir dizi codec bileşenini kodlamak, kodunu çözmek ve görüntülemek için yazılımı ve Quicktime VR gibi diğer merakları içeren bir multimedya çerçevesidir.
stib

1

orada codec'i ler ve konteynerler (dosya biçimleri). Kodek, verilerin nasıl kodlandığını / kodlandığını açıklar. Diğeri, kodlanmış verilerin dosyanın içine nasıl yerleştirildiğini açıklar.

Çoğu medya oynatıcı, çoklu kodek ve konteyner tiplerini destekler. Bu kafa karıştırıcı, bu yüzden daha fazla bilgi için referanslarımı okumanızı öneririm.


-1

Bir format, belirli bir dosya formatı tipine ve sıkıştırma tipine verilen addır (çoğu video boyutu küçültmek için sıkıştırılır) ve kod çözücünün gerçekte sıkıştırabileceği, okudığı ve videoya dönüştürerek videoya dönüştürdüğü addır. . Başka bir deyişle, biri dosya türüdür, diğeri ise yazılımın bir parçasıdır.

Genellikle çoğu videoya format adı verilir, bu nedenle Quicktime MOV, MPEG ve WMV formatlardır.

FFmpeg (bunu hiç duymamıştım), çeşitli biçimleri başka biçimlere dönüştüren bir yazılımın adı gibi görünüyor.

AVC ve H.264 aynıdır ve HD videoyu kodlamak için bir formattır.

DivX, ticari olarak satılan bir codec bileşenidir.

Xvid, MPEG-4 için bir kod çözücüdür.


1
ffmpeg, FOSS dönüştürücülerinin% 99'unun arka ucu.
Journeyman Geek

Bu cevap yanlış. 7 cümleden sadece 6 ve 7 rakamları doğrudur, hatta detaylar eksiktir.
jiggunjer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.