Saya sangat bingung ... apa perbedaan antara codec audio / video (yang ternyata adalah singkatan untuk "encoder / decoder", seperti bagaimana "modem" benar-benar "modulator / demodulator") dan audio / format video?
(Apakah saya bahkan menggunakan terminologi yang benar?)
yaitu: Apa perbedaan antara mengatakan sesuatu adalah "MPEG-4" dan mengatakan sesuatu menggunakan codec "DivX"? Mengapa Windows Media Player terkadang menjalankan .mpg
file, dan terkadang tidak?
Juga, yang mana dari yang berikut ini adalah codec, mana yang merupakan format file, dan mana yang bukan?
- MOV Quicktime
- MPEG (1, 2, 3, 4)
- WMV
- FFmpeg
- AVC
- Xvid
- DivX (apa bedanya dengan palindrome-nya, Xvid?)
- H.264
video
codec
file-format
video-codecs
Mehrdad
sumber
sumber
Jawaban:
Beberapa definisi utama:
Seperti yang Anda lihat, kami harus menjelaskan beberapa hal di sini.
Apa itu codec?
Sebuah codec adalah singkatan encoder / decoder, yang pada dasarnya hanya berarti sebagai berikut: Data yang dihasilkan oleh encoder selalu dapat diterjemahkan oleh decoder yang tepat. Ini berlaku untuk video, audio, tetapi Anda juga dapat berpikir tentang kriptografi (pembuat enkode memerlukan dekoder yang sesuai untuk menampilkan pesan terenkripsi).
Saat ini, ketika video codec ditentukan, lembaga yang mengambil bagian di dalamnya biasanya hanya menentukan sintaks standar. Sebagai contoh, mereka akan mengatakan: "Format bitstream harus seperti ini", "Di
0x810429AAB
sini akan diterjemahkan ke dalam", dll. Seringkali mereka menyediakan encoder dan decoder referensi, tetapi bagaimana encoder kemudian ditulis untuk mencocokkan dengan format sepenuhnya terserah produsen.Ini adalah alasan mengapa Anda akan menemukan begitu banyak encoders untuk codec yang sama, dan beberapa di antaranya bahkan komersial.
Contoh kasus - H.264
Sebelum kita mencampuradukkan terminologi, mari kita ambil contoh. Pertimbangkan kasus untuk H.264 . Nama standarnya adalah H.264 - itu bukan nama pembuat kode yang sebenarnya. Mainconcept adalah encoder komersial yang sangat baik, sedangkan x264 adalah yang gratis dan open source. Keduanya mengklaim memberikan kualitas yang baik, tentu saja.
Fakta bahwa Anda dapat mengoptimalkan pengodean membuat kompetisi di sini. Kedua encoders akan memberikan bitstream standar yang selalu dapat didekodekan oleh decoder yang kompatibel dengan H.264.
Untuk meringkas
Jadi, secara keseluruhan, katakan saja bahwa pembuat enkode akan:
Bitstream ini kemudian multiplexing ke dalam wadah.
Dekoder akan:
Keduanya sesuai dengan standar codec. Itu saja!
Codec saat ini
Saat ini, Anda mungkin hanya akan menemukan video yang dikodekan dengan codec yang akan saya sebutkan di bawah ini. Menariknya, hampir semuanya dibuat oleh Motion Picture Experts Group (MPEG). Tetapi ada beberapa codec lain yang bebas royalti, seperti yang dibuat oleh Google atau Alliance for Open Media, yang merupakan pesaing dari standar MPEG.
Perhatikan bahwa "MPEG" dapat merujuk ke codec dan kontainer, seperti yang akan Anda lihat di bawah. Ini menambah kebingungan, tetapi hanya tahu bahwa "MPEG" saja tidak berarti apa-apa, misalnya "Saya memiliki file dalam format MPEG" sangat ambigu ".
MPEG-2
MPEG-2 sudah cukup tua. Rilis publik pertama adalah dari tahun 1996. Video MPEG-2 sebagian besar digunakan untuk DVD dan siaran TV, misalnya DVB-T atau satelit, dan aplikasi lama di mana kompatibilitas penting. Video MPEG-2 sebagian besar ditemukan dalam wadah .MPG .
MPEG-4 Bagian 2
Ini mungkin salah satu yang sebagian besar digunakan untuk menyandikan video untuk web pada pertengahan 2000-an, tetapi saat ini telah digantikan. Ini menawarkan kualitas yang baik pada ukuran file praktis, yang berarti bahwa Anda dapat membakar seluruh film berdurasi 90 menit ke CD 600 MB (sedangkan dengan MPEG-2 Anda akan membutuhkan DVD, lihat jawaban saya di sini ). Itu tidak berfungsi dengan baik untuk konten HD atau 4K lagi.
Beberapa encoders yang menghasilkan video MPEG-4 Part 2 adalah DivX , XviD ripoff bersumber terbuka , dan Nero Digital .
Video MPEG-4 Bagian 2 sebagian besar datang dalam wadah AVI , tetapi MP4 juga sering terlihat.
MPEG-4 Bagian 10 / AVC / H.264
Ini juga dikenal sebagai MPEG-4 Advanced Video Coding (AVC) atau H.264 ; itu adalah codec yang paling banyak digunakan saat ini. Ini menawarkan kualitas yang baik pada ukuran file kecil dan karenanya sangat cocok untuk semua jenis video untuk Internet atau perangkat seluler. Anda akan menemukan H.264 di hampir setiap aplikasi modern, dari ponsel ke camcorder. Pada disk Blu-ray, video sekarang dikodekan dalam H.264.
Beberapa encoders untuk itu adalah: x264 , NVENC (dari NVIDIA), Mainconcept . Video sebagian besar datang dalam wadah MP4 , MKV atau MOV .
HEVC / H.265
Juga disebut MPEG-H Bagian 2, ini adalah penerus MPEG-4 Bagian 10 / AVC / H.264. Ini ditujukan untuk resolusi yang lebih tinggi (hingga 8K ) dan dapat menawarkan kinerja pengkodean hingga 50% lebih tinggi (dalam hal kualitas vs bitrate) dibandingkan dengan H.264 (lihat makalah ini , misalnya).
Standar ini diterbitkan pada 2013, dan perlahan-lahan, codec mulai digunakan semakin banyak, misalnya, untuk IPTV atau transmisi video online. HEVC juga digunakan oleh Apple untuk menyimpan video dan gambar (menggunakan HEIF ) di iOS. Namun, fakta bahwa ada beberapa kumpulan paten yang terkait dengan HEVC memiliki banyak perusahaan (hampir semua kecuali Apple) beralih ke alternatif bebas royalti. HEVC juga tidak didukung secara native oleh semua browser, membuatnya tidak dapat digunakan untuk streaming web.
Encoder paling terkenal adalah x265 . Ada juga NVENC . Video biasanya datang dalam wadah MP4 .
VP9 dan AV1
VP9 (penerus VP8) adalah codec yang terutama dikembangkan oleh Google. Ini terbuka dan bebas royalti, dan diterapkan di banyak browser . Kualitasnya hampir sama baiknya dengan HEVC, dan kadang-kadang bahkan lebih baik (lihat makalah ini oleh Netflix). VP9 adalah apa yang Anda dapatkan ketika Anda menonton YouTube di browser yang mendukungnya.
VP9 dapat dikodekan dengan libvpx encoder, dan itu sering kali datang dalam wadah WebM atau MKV .
Beberapa perusahaan berkumpul untuk membentuk pesaing yang lebih kuat untuk HEVC - tetapi sebagai alternatif bebas royalti. AV1 akan menjadi penerus VP9, dan didasarkan pada apa yang seharusnya menjadi VP10. Ini didukung oleh Alliance for Open Media (didirikan oleh Amazon, Cisco, Google, Intel, Microsoft, Mozilla, dan Netflix). Baca lebih lanjut di sini .
The libaom encoder dapat digunakan untuk menghasilkan bitstream AV1, tetapi masih eksperimental.
Apa itu format (wadah)?
Sampai sekarang kami hanya menjelaskan "bitstream" mentah, yang pada dasarnya hanya data video yang benar-benar mentah. Anda sebenarnya bisa melanjutkan dan menonton video menggunakan bitstream mentah. Tetapi dalam kebanyakan kasus itu tidak cukup atau tidak praktis.
Karena itu, Anda perlu membungkus video dalam wadah. Ada beberapa alasan mengapa:
Untuk semua alasan itu, format wadah diciptakan, beberapa sederhana, beberapa lebih canggih. Apa yang mereka semua lakukan adalah "membungkus" bitstream video ke bitstream lain.
Wadah akan menyinkronkan frame video dan audio sesuai dengan Cap Waktu Presentasi (PTS) mereka, yang memastikan mereka ditampilkan pada waktu yang sama persis. Itu juga akan mengurus menambahkan informasi untuk server streaming, jika perlu, sehingga server streaming tahu kapan harus mengirim bagian mana dari file.
Mari kita lihat beberapa wadah populer.
Wadah populer
Anda akan menemukan video sebagian besar dibungkus dalam wadah berikut. Ada juga yang kurang populer, tetapi seperti yang saya katakan, sebagian besar adalah:
AVI
Audio Video Interleave - ini adalah wadah paling dasar, hanya ada di sana untuk interleave audio dan video. Itu ditulis pada tahun 1992 dan masih digunakan sampai sekarang, tetapi dianggap warisan, jadi jangan menggunakannya lagi.
MP4
juga dikenal sebagai MPEG-4 Bagian 14 dan didasarkan pada format file QuickTime. Ini adalah format masuk untuk video H.264, tetapi juga membungkus HEVC, MPEG-4 Bagian 2 dan MPEG-2.
Wadah ini mungkin hanya membungkus audio, itulah sebabnya Anda akan menemukan begitu banyak file .mp4 yang bukan video melainkan audio yang disandikan AAC , juga dalam file .m4a (hanya ekstensi yang berbeda). Ekstensi .m4v biasanya diambil untuk bitstream video.
MKV dan WebM
Matroska Video (MKV) adalah format file bersumber terbuka dan gratis yang sering ditemukan saat ini, karena pada dasarnya mendukung setiap codec, dari H.264 ke VP9, dan tentu saja juga banyak codec audio.
WebM didasarkan pada MKV dan terutama digunakan untuk video VP9 dan audio Opus - ini adalah wadah pilihan untuk video streaming web saat codec ini digunakan.
Ogg
Wadah Ogg adalah wadah pilihan untuk codec video Theora (dan codec audio Vorbis ), juga dibuat oleh Xiph.Org Foundation. Ini juga gratis dan open source (seperti halnya codec).
FLV
Format video Flash dibuat oleh Adobe, untuk digunakan dalam aplikasi streaming mereka. Itu tidak banyak digunakan lagi, karena cara streaming dilakukan telah berubah secara signifikan selama beberapa tahun terakhir.
Codec dan format populer
libavcodec
danlibavformat
pustaka untuk membuat codec dan kontainer, masing-masing. Sebagian besar alat video yang Anda temukan hari ini didasarkan padanya.Di samping catatan:
Saya kira sekali akan lebih memilih untuk menggunakan "codec" dan "wadah" khusus daripada "format" untuk menghindari kesalahpahaman. Suatu format secara teoritis dapat berupa apa saja, karena baik codec maupun wadah menentukan format (yaitu bagaimana data harus diwakili).
Yang sedang berkata, terminologi FFmpeg akan menggunakan "format" untuk wadah. Ini juga karena perbedaan antara:
libavcodec
, perpustakaan untuk encoding / decodinglibavformat
, perpustakaan untuk wadahsumber
Secara umum 'format' media benar-benar sebuah wadah, berisi aliran audio (dari beberapa codec audio) dan aliran video (dari beberapa codec video) dan kadang-kadang informasi tambahan. kebanyakan 'file' Anda memiliki tipe file berdasarkan wadah dan bukan codec
FFmpeg bukan wadah atau codec - ini adalah kumpulan perpustakaan serbaguna, codec dan perangkat lunak untuk konversi file yang mendasari banyak konverter dan pemutar musik.
H.264 / AVC dan xvid / divx adalah codec
AVI (file divx / xvid), mp4, mpeg adalah wadah.
Saya tidak yakin tentang quicktime mov - .mov adalah sebuah wadah, quicktime adalah sebuah codec.
sumber
ada codec dan wadah (format file). Codec menjelaskan bagaimana data dikodekan / didekodekan. Yang lain menjelaskan bagaimana data yang dikodekan ditempatkan di dalam file.
Sebagian besar pemutar media mendukung beberapa jenis codec dan wadah. Ini membingungkan, jadi saya sarankan Anda membaca referensi saya untuk informasi lebih lanjut
sumber
Format adalah nama yang diberikan untuk jenis format file tertentu dan tipe kompresi (sebagian besar video dikompresi untuk mempertahankan ukurannya), dan codec adalah apa yang sebenarnya dapat memampatkannya, membacanya dan menerjemahkannya ke dalam video yang Anda lihat dengan mendekompresinya . Dengan kata lain, satu adalah jenis file, tetapi yang lainnya adalah perangkat lunak.
Kami biasanya merujuk ke sebagian besar video dengan nama format, jadi Quicktime MOV, MPEG, dan WMV adalah format.
FFmpeg (saya belum pernah mendengar ini) tampaknya menjadi nama perangkat lunak untuk mengubah berbagai format menjadi format lain.
AVC dan H.264 adalah sama, dan merupakan format untuk penyandian video HD.
DivX adalah codec yang dijual secara komersial.
Xvid adalah codec untuk MPEG-4.
sumber