IlmHamroh
JavaScript Full-stack/1-qism. Kompyuter, fayllar va terminal39/40-dars20 daqiqa
Mundarija (42)

Audio va video formatlari: konteyner, kodek va bitrate

Qisqacha: Video fayl ikki qavatdan iborat: tashqi "quti" — konteyner (MP4, WebM) va ichidagi siqish usuli — kodek (H.264, AV1, AAC, Opus). Brauzer faylni o'ynashi uchun ikkalasini ham tushunishi kerak. 2026 holatiga eng ishonchli tanlov — ichida H.264 video va AAC ovoz bo'lgan MP4. Ovozli xabarlar esa Opus kodekida yuboriladi.

Bu darsda

  • Konteyner va kodek farqini o'z so'zlaringiz bilan tushuntira olasiz.
  • Vebdagi asosiy formatlarni taniysiz: MP4, WebM, H.264, VP9, AV1, H.265.
  • Ovoz kodeklari MP3, AAC va Opus qayerda ishlatilishini bilasiz.
  • Bitrate orqali fayl hajmini oldindan hisoblay olasiz.
  • ffmpeg bilan fayl ichini ko'rasiz va videoni boshqa formatga o'girasiz.

Oldin bilishingiz kerak: Rasm, ovoz va video raqamli ko'rinishda, Matnli va binar fayllar, Rasm formatlari: qachon qaysi biri, Dastur o'rnatish va paket menejerlari.


1. Nega bu kerak?

Rasm, ovoz va video darsida hisoblagan edik: siqilmagan Full HD videoning 1 daqiqasi taxminan 22 GB joy oladi. Telefoningizdagi 1 daqiqalik video esa odatda 100–200 MB. Telegram'dagi 1 daqiqalik ovozli xabar — atigi 200–300 KB.

Bu farqni siqish beradi. Lekin siqilgan faylni har qanday dastur ham ocha olmaydi.

Tasavvur qiling: Malika o'z do'koni sayti uchun iPhone'da video yozdi va saytga qo'ydi. O'z telefonida hammasi zo'r. Do'sti esa Windows kompyuterida ochdi — ovoz bor, rasm yo'q, qora ekran. Fayl buzilmagan. Muammo — faylning ichida.

Bu darsda o'sha "ich"ni ko'rishni o'rganamiz. Shunda Malikaning muammosini 1 ta buyruq bilan hal qila olasiz.


2. Konteyner va kodek: konvert va xat

2.1 O'xshatish

Sizga xat keldi. Konvertni ochdingiz — ichida xat. Lekin xat xitoy tilida yozilgan. Konvertni ochish qo'lingizdan keldi, xatni o'qish esa kelmadi.

Video fayl ham xuddi shunday:

  • Konvert — konteyner. Uni ochish oson, deyarli hamma dastur ochadi.
  • Xat yozilgan til — kodek. Pleyer shu "tilni" bilmasa, video o'ynamaydi.

Malikaning videosida aynan shu bo'ldi: kompyuter konvertni (MP4) ochdi, lekin ichidagi video "tili"ni bilmadi. Ovoz esa tanish tilda edi — shuning uchun ovoz eshitildi.

2.2 Konteyner (container)

Konteyner (container) — video, ovoz, subtitr va qo'shimcha ma'lumotni bitta faylga joylaydigan "quti". Fayl kengaytmasi odatda konteynerni bildiradi.

Konteyner Kengaytma Qayerda uchraydi
MP4 .mp4, .m4a Veb, telefon, YouTube — eng keng tarqalgan
WebM .webm Veb, Google tomonidan yaratilgan
MOV .mov iPhone kamerasi, Apple dasturlari
Matroska .mkv Kino fayllar, ko'p subtitr va ovozli
Ogg .ogg, .oga Telegram ovozli xabarlari

Konteyner ichidagi har bir qism oqim (stream) deyiladi: video oqimi, ovoz oqimi, subtitr oqimi. Bitta faylda bir nechta ovoz oqimi ham bo'lishi mumkin — masalan, o'zbekcha va inglizcha dublyaj.

2.3 Kodek (codec)

Kodek (codec) — ovoz yoki videoni siqadigan va qayta ochadigan usul (algoritm). Nomi ikki inglizcha so'zdan olingan: coder (siquvchi) + decoder (ochuvchi).

  • Yozib olishda kodek videoni siqadi. Bu kodlash (encode) deyiladi.
  • O'ynatishda pleyer uni ochadi. Bu dekodlash (decode) deyiladi.

Kodeklar ikki xil bo'ladi:

  • Video kodeklar: H.264, H.265 (HEVC), VP9, AV1.
  • Ovoz kodeklari: MP3, AAC, Opus, FLAC.

Butun tuzilma bir rasmda:

flowchart TD
  F["video.mp4 — konteyner (quti)"]
  F --> V["Video oqimi<br/>kodek: H.264"]
  F --> A["Audio oqimi<br/>kodek: AAC"]
  F --> S["Subtitr<br/>(ixtiyoriy)"]
  F --> M["Metama'lumot<br/>davomiylik, sarlavha"]
  V --> P["Pleyer ikkalasini<br/>ochib, birga o'ynaydi"]
  A --> P

Metama'lumot — fayl haqidagi ma'lumot: davomiyligi, sarlavhasi, yozilgan sanasi.

2.4 Kengaytma kodekni aytmaydi

Matnli va binar fayllar darsida o'rgangan edik: kengaytma — faqat nom. Bu yerda ham shunday.

Ikki fayl bor: bayram.mp4 va sayohat.mp4. Ikkalasi MP4. Lekin birinchisining ichida H.264, ikkinchisining ichida H.265 bo'lishi mumkin. Kengaytmaga qarab buni bilib bo'lmaydi. Ichini ko'rish uchun maxsus vosita kerak — uni shu darsning o'zida, ffmpeg bo'limida o'rganamiz.

Diqqat: Brauzer MP4 konteynerini tanisa-yu, ichidagi kodekni bilmasa, video baribir ochilmaydi. "MP4 hamma joyda ishlaydi" degan gap faqat ichida H.264 bo'lsa to'g'ri.

Tekshirib ko'ring: Do'stingiz aytdi: "Bu MP4 video kompyuterimda ochilmayapti, demak fayl buzilgan." U haqmi?

Javob

Shart emas. MP4 — faqat konteyner. Fayl butun bo'lishi mumkin, lekin ichidagi kodekni (masalan, H.265) kompyuterdagi pleyer bilmayotgan bo'lishi mumkin. Avval ichida qaysi kodek borligini tekshirish kerak.

Tekshirib ko'ring: Konteyner va kodek o'rtasidagi asosiy farq nima?

Javob

Konteyner — oqimlarni bitta faylga joylaydigan quti (MP4, WebM). Kodek — ovoz yoki videoni siqish va ochish usuli (H.264, AAC). Konvert va xat tili kabi: konvertni ochish bilan xatni o'qish — ikki xil ish.


3. Video kodeklar: vebda qaysi biri?

3.1 To'rtta asosiy kodek

Kodek Odatiy konteyner Brauzerlarda (2026) Xususiyati
H.264 (AVC) MP4 Hamma joyda Eng ishonchli, 2003-yildan beri
VP9 WebM Hamma zamonaviy brauzer Google'niki, bepul
AV1 MP4, WebM Chrome, Edge, Firefox; Safari — faqat yangi Apple qurilmalarida Eng kuchli siqish, bepul
H.265 (HEVC) MP4, MOV Safari; boshqalarida — apparat dekoder bo'lsagina iPhone kamerasi shunda yozadi

Jadvalda yangi atama bor — apparat dekoder (hardware decoder). Bu telefon yoki kompyuter chipi ichidagi, faqat video ochish uchun qilingan maxsus qism. U videoni oddiy dasturdan ancha tez ochadi va batareyani kam sarflaydi. CPU darsida protsessor ko'p xil ishni bajarishini ko'rgan edik. Apparat dekoder esa faqat bitta ishni juda yaxshi qiladi.

3.2 Nega Safari'da AV1 "faqat ba'zan"?

2026 holatiga Apple AV1 uchun dasturiy dekoder bermaydi. Safari AV1 ni faqat chipida AV1 dekoder bor qurilmada o'ynaydi: iPhone 15 Pro va undan yangilari, M3 va undan yangi chipli Mac'lar. Eski iPhone'da AV1 video ochilmaydi.

H.265 bilan ham shunga o'xshash holat. Chrome 107-versiyadan beri H.265 ni o'ynaydi, lekin Windows'da faqat kompyuterda apparat dekoder bo'lsa. Firefox ham yangi versiyalarida shunday.

3.3 Nega bunday murakkab? Patentlar

Kodek — birovning ixtirosi. Patent — ixtiroga egalik huquqi: uni ishlatgan kompaniya egasiga pul to'laydi.

  • H.264, H.265 — patentli. Brauzer va qurilma ishlab chiqaruvchilar litsenziya uchun pul to'laydi. H.265 ning litsenziyasi ayniqsa chalkash, shuning uchun brauzerlar undan qochadi.
  • VP9, AV1 — bepul (royalty-free). Shuning uchun Google, Netflix, Amazon kabi kompaniyalar AV1 ni birga yaratgan va keng ishlatadi.

Siz, foydalanuvchi yoki sayt egasi sifatida, bu uchun hech narsa to'lamaysiz.

3.4 Siqish kuchi

Bir xil sifatdagi 1 daqiqalik video taxminan quyidagicha:

  • H.264 — 100 birlik hajm.
  • VP9 va H.265 — taxminan 60–70.
  • AV1 — taxminan 50, ya'ni H.264 dan qariyb ikki barobar kichik.

Lekin buning narxi bor: AV1 bilan siqish (kodlash) ancha sekin va kuchli kompyuter talab qiladi.

3.5 2026 yil uchun tavsiya

  1. Asosiy variant — H.264 kodekli MP4. U hamma joyda ochiladi.
  2. Qo'shimcha variant — AV1 yoki VP9 kodekli WebM (yoki AV1 li MP4). Zamonaviy brauzer kichikroq faylni oladi.

Katta saytlar ikkala variantni ham tayyorlab qo'yadi. Brauzer o'zi tushunadiganini tanlaydi. Buni qanday yozishni dars oxiriga yaqin ko'ramiz.

Tekshirib ko'ring: Nega bugun ham veb-videoning asosiy varianti H.264, garchi AV1 ikki barobar kichik bo'lsa ham?

Javob

Chunki H.264 ni deyarli barcha qurilma va brauzer o'ynaydi, ko'pchiligida uning uchun apparat dekoder ham bor. AV1 esa eski iPhone va Mac'larda ochilmaydi. Shuning uchun AV1 — qo'shimcha variant, H.264 — kafolatlangan zaxira.


4. Ovoz kodeklari: MP3, AAC va Opus

4.1 MP3

MP3 1990-yillar boshida Germaniyada yaratilgan. U musiqa dunyosini o'zgartirgan: qo'shiqni 10 barobar kichraytirib, internet orqali ulashish imkonini bergan.

MP3 ning patentlari 2017-yilda tugagan — endi uni hamma bepul ishlatadi. Uni istalgan telefon, mashina magnitolasi va brauzer o'ynaydi. Kamchiligi — yoshi: bir xil hajmda yangi kodeklar tiniqroq ovoz beradi.

MP3 da bir qiziq holat bor: .mp3 — ham kodek nomi, ham fayl turi. Bu faylda alohida konteyner deyarli yo'q, ichida faqat MP3 ovoz bo'ladi.

4.2 AAC

AAC (Advanced Audio Coding) — MP3 dan keyingi avlod. MP4 video ichidagi ovoz odatda shu kodekda. YouTube, Apple Music va iPhone'da asosiy kodek. Bir xil hajmda MP3 dan tiniqroq eshitiladi.

Faqat ovozli AAC fayl odatda .m4a kengaytmasi bilan saqlanadi — bu aslida ichida video yo'q MP4.

4.3 Opus

Opus — 2012-yilda internet uchun yaratilgan bepul kodek. Uning ikki kuchli tomoni bor.

Birinchisi — past bitrate'da ham tiniq. Nutq uchun soniyasiga 16–32 kilobit yetarli. Bitrate nima ekanini keyingi bo'limda batafsil ko'ramiz.

Ikkinchisi — past kechikish (low latency). Kechikish — siz gapirgan payt bilan suhbatdoshingiz eshitgan payt orasidagi vaqt. Opus'da bu vaqt juda qisqa. Shuning uchun u jonli suhbatlar uchun ideal.

Opus'ni har kuni ishlatasiz:

  • Telegram ovozli xabarlari — Opus, Ogg konteyneri ichida (.ogg yoki .oga).
  • WhatsApp ovozli xabarlari va Discord suhbatlari.
  • Brauzerdagi video qo'ng'iroqlar (Google Meet kabi). Ular WebRTC degan texnologiyada ishlaydi — uni kursda keyinroq o'rganamiz, hozir bilish shart emas.

2026 holatiga Opus'ni barcha asosiy brauzerlar o'ynaydi. Safari uni to'liq faqat 18.4-versiyadan (2025-yil) beri qo'llaydi. Shuning uchun juda eski iPhone'larda muammo chiqishi mumkin.

4.4 Yo'qotishsiz ovoz: FLAC va WAV

Rasm, ovoz va video darsidagi lossless siqishni eslang. Ovozda uning vakili — FLAC: hech narsa yo'qolmaydi, lekin fayl MP3 dan 4–5 barobar katta. WAV esa umuman siqilmagan ovoz. Ikkalasi studiyada va arxivda ishlatiladi, veb-saytga qo'yilmaydi.

Kodek Qayerda Nutq uchun Musiqa uchun
MP3 Hamma joyda, eski qurilmalar 64 kbit/s 128–320 kbit/s
AAC MP4 video, iPhone, YouTube 48–64 kbit/s 128–256 kbit/s
Opus Telegram, WhatsApp, qo'ng'iroqlar 16–32 kbit/s 96–128 kbit/s

Tekshirib ko'ring: Telegram'dagi ovozli xabarni kompyuterga saqladingiz: audio_2026.ogg. Bu yerda konteyner nima, kodek nima?

Javob

Konteyner — Ogg (.ogg), kodek — Opus. Kengaytma konteynerni aytadi, kodekni esa Telegram ovozli xabarlarida Opus ishlatilishini bilganimiz uchun aniqladik. Aniq tekshirish uchun ffmpeg -i audio_2026.ogg buyrug'i kerak — uni quyida ffmpeg bo'limida ko'ramiz.

Tekshirib ko'ring: Nega messenjerlar ovozli xabar uchun MP3 emas, Opus'ni tanlagan?

Javob

Opus nutqni juda kichik bitrate'da (16–32 kbit/s) ham tiniq saqlaydi — sekin internetda ham xabar tez ketadi. Uning kechikishi ham juda past, bu jonli qo'ng'iroqlar uchun muhim. Ustiga-ustak, u bepul.


5. Bitrate: sifat va hajm "hisoblagichi"

5.1 Bitrate nima?

Telefoningizda video ko'rganda mobil internet tez tugashini sezgansiz. YouTube'da bir soatlik 1080p video 1–3 GB "yeydi". 360p da esa bir necha yuz megabayt. Farq — bitrate'da.

Bitrate (bit tezligi) — ovoz yoki videoning har bir soniyasiga sarflanadigan bitlar soni. U kbit/s (soniyasiga kilobit) yoki Mbit/s (soniyasiga megabit) bilan o'lchanadi. Ba'zan qisqa kbps va Mbps deb yoziladi — ma'nosi bir xil.

Bitrate qancha katta bo'lsa, har soniyaga shuncha ko'p ma'lumot sig'adi. Natijada sifat yaxshi, lekin fayl ham katta.

5.2 Hajmni hisoblash formulasi

O'lchov birliklari darsidan eslang: 1 bayt = 8 bit. Bitrate bitda, fayl hajmi esa baytda. Shuning uchun oxirida 8 ga bo'lamiz:

Hajm (bayt) = bitrate (bit/s) × davomiylik (soniya) ÷ 8

1-misol: Telegram'dagi 1 daqiqalik ovozli xabar (Opus, 32 kbit/s):

  1. Bitrate: 32 kbit/s = 32 000 bit/s.
  2. Davomiylik: 1 daqiqa = 60 soniya.
  3. 32 000 × 60 = 1 920 000 bit.
  4. 1 920 000 ÷ 8 = 240 000 bayt ≈ 240 KB.

Haqiqiy fayl biroz farq qilishi mumkin — konteyner ham ozgina joy oladi.

2-misol: 10 daqiqalik 1080p video (video 5 Mbit/s, ovoz 128 kbit/s):

  1. Umumiy bitrate: 5 000 000 + 128 000 = 5 128 000 bit/s.
  2. Davomiylik: 10 daqiqa = 600 soniya.
  3. 5 128 000 × 600 = 3 076 800 000 bit.
  4. ÷ 8 = 384 600 000 bayt ≈ 385 MB.

3-misol, o'zingiz to'ldiring: 30 daqiqalik podkast, AAC 64 kbit/s. 64 000 × 1 800 ÷ 8 = bayt, ya'ni taxminan 14,4 MB.

5.3 Odatiy bitrate'lar

Nima Odatiy bitrate 1 daqiqa hajmi
Ovozli xabar (Opus) 16–32 kbit/s 0,12–0,24 MB
Musiqa (MP3) 128–320 kbit/s 1–2,4 MB
Video 720p 2–4 Mbit/s 15–30 MB
Video 1080p 4–8 Mbit/s 30–60 MB
Video 4K 15–25 Mbit/s 110–190 MB

Telefon kamerasi 1080p videoni odatda bundan ham yuqoriroq (10–20 Mbit/s) bitrate bilan yozadi. U sifatni zaxira bilan saqlaydi. Shuning uchun saytga qo'yishdan oldin videoni qayta siqish foydali.

5.4 CBR va VBR

  • CBR (Constant Bitrate — doimiy bitrate): har soniyaga bir xil miqdor. Jonli efir uchun qulay: internet kanaliga bir tekis yuk tushadi.
  • VBR (Variable Bitrate — o'zgaruvchan bitrate): tinch sahnada (masalan, qimirlamaydigan fon) bitrate pasayadi, harakatli sahnada (futbol, portlash) ko'tariladi. Bir xil sifatda umumiy fayl kichikroq bo'ladi.

Fayl sifatida saqlanadigan video va musiqa odatda VBR bilan siqiladi.

Tekshirib ko'ring: Ali "Qo'shiq bitrate'i 320 kbit/s, demak har soniyada 320 KB" dedi. Xatosi qayerda?

Javob

Ali bit bilan baytni adashtirdi. 320 kbit/s — soniyasiga 320 000 bit. Baytga o'tkazish uchun 8 ga bo'lamiz: 40 000 bayt = 40 KB. Demak har soniya 40 KB oladi, 320 KB emas.


6. ffmpeg bilan amaliy tanishuv

6.1 ffmpeg nima?

ffmpeg — ovoz va videoni o'qiydigan, o'giradigan va siqadigan bepul terminal dasturi. YouTube, VLC pleyeri va Telegram kabi xizmatlar ichida ham uning kutubxonalari ishlaydi. Bu darsdagi buyruqlar ko'p yillardan beri barcha versiyalarda bir xil ishlaydi — qaysi versiyani o'rnatganingiz muhim emas.

O'rnatish — paket menejeri bilan, bitta buyruqda.

Windows (PowerShell):

powershell
winget install --id Gyan.FFmpeg -e

macOS:

bash
brew install ffmpeg

Ubuntu Linux:

bash
sudo apt install ffmpeg

O'rnatgandan keyin terminalni yopib, qayta oching va tekshiring:

bash
ffmpeg -version

Birinchi qatorda ffmpeg version ... chiqsa — tayyor.

6.2 Sinov videosi yasash

Qo'lingizda video bo'lmasa, ffmpeg uni o'zi yasab beradi:

bash
ffmpeg -f lavfi -i testsrc=duration=5 -pix_fmt yuv420p sinov.mp4

Bu 5 soniyalik rangli "sinov jadvali" videosi. -pix_fmt yuv420p — ranglarni hamma pleyer tushunadigan shaklda saqlash. Qolgan qismlarini yodlash shart emas — bu shunchaki mashq uchun material.

6.3 Fayl ichini ko'rish

Eng foydali buyruq — faylning ichida nima borligini ko'rish. Buning uchun -i (input — kirish fayli) beriladi, boshqa hech narsa berilmaydi:

bash
ffmpeg -i video.mp4

Natija (qisqartirilgan):

text
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
  Duration: 00:00:05.00, bitrate: 175 kb/s
  Stream #0:0: Video: h264 (High), 1280x720, 30 fps
  Stream #0:1: Audio: aac (LC), 44100 Hz, mono
At least one output file must be specified

Qatorma-qator o'qiymiz:

  • Input #0 ... mp4 — konteyner MP4 oilasidan.
  • Duration: 00:00:05.00 — davomiyligi 5 soniya. bitrate: 175 kb/s — umumiy bitrate.
  • Stream #0:0: Video: h264 — birinchi oqim video, kodeki H.264, o'lchami 1280×720, soniyasiga 30 kadr.
  • Stream #0:1: Audio: aac — ikkinchi oqim ovoz, kodeki AAC.
  • At least one output file must be specified — "kamida bitta chiqish fayli ko'rsatilishi kerak". Bu xato emas: biz faqat ma'lumot so'radik, yangi fayl nomini bermadik.

Mana, kengaytma aytmagan narsani — kodekni — ko'rdik.

Maslahat: ffmpeg bilan birga ffprobe ham o'rnatiladi. ffprobe video.mp4 xuddi shu ma'lumotni "ogohlantirishsiz" chiqaradi. Dasturlar fayl haqida ma'lumot olishda aynan ffprobe ni ishlatadi.

6.4 Buyruq anatomiyasi

Buyruq anatomiyasi darsida ko'rgan "nom + flaglar + argumentlar" shakli bu yerda ham bor. ffmpeg ning eng kerakli flaglari:

Flag Ma'nosi Misol
-i Kirish fayli (input) -i video.mp4
-c:v Video kodeki (codec: video) -c:v libx264
-c:a Ovoz kodeki (codec: audio) -c:a aac
-b:a Ovoz bitrate'i -b:a 128k
-crf Video sifati: kichik son — yaxshi sifat -crf 23
-vn Videoni tashlab yubor (video no) -vn
-c copy Qayta siqma, borini ko'chir -c copy

Buyruqning oxirida chiqish fayli nomi yoziladi. ffmpeg konteynerni shu nomning kengaytmasidan aniqlaydi.

libx264, libmp3lame, libopus — kodeklarni amalga oshiradigan kutubxonalar nomi. libx264 — H.264, libmp3lame — MP3, libopus — Opus.

6.5 To'rtta foydali retsept

1. Videoni veb uchun H.264 ga siqish:

bash
ffmpeg -i katta.mov -c:v libx264 -crf 23 -c:a aac -b:a 128k kichik.mp4
  • -c:v libx264 — video H.264 ga siqiladi.
  • -crf 23 — sifat darajasi. CRF — "doimiy sifat" rejimi: bitrate'ni ffmpeg o'zi tanlaydi. 18 — juda yaxshi sifat, 23 — odatiy, 28 — kichikroq fayl. Son 6 ga oshsa, fayl taxminan ikki barobar kichrayadi.
  • -c:a aac -b:a 128k — ovoz AAC, 128 kbit/s.

Malikaning muammosi aynan shu buyruq bilan hal bo'ladi: iPhone'dagi H.265 video H.264 ga o'giriladi va hamma joyda ochiladi.

2. Videodan faqat ovozni MP3 qilib olish:

bash
ffmpeg -i video.mp4 -vn -c:a libmp3lame -b:a 128k ovoz.mp3

-vn video oqimini tashlab yuboradi, qolgan ovoz MP3 ga siqiladi.

3. Ovozni Telegram uslubidagi Opus'ga o'girish:

bash
ffmpeg -i ovoz.mp3 -c:a libopus -b:a 32k ovoz.ogg

Natija — Ogg ichidagi Opus, 32 kbit/s. Telegram botlari ovozli xabar yuborishda aynan shu formatni talab qiladi.

4. Faqat konteynerni almashtirish (qayta siqmasdan):

bash
ffmpeg -i kino.mkv -c copy kino.mp4

-c copy — "oqimlarni qayta siqma, borini yangi qutiga ko'chir". Bu ish qayta qadoqlash (remux) deyiladi. U bir necha soniyada tugaydi va sifat umuman yo'qolmaydi. Konvertni almashtirdik, xat esa o'sha-o'sha.

Oldingi uchta retseptda esa qayta siqish (transcode) bo'ldi: oqim ochilib, boshqa kodek bilan qayta siqildi. Bu sekinroq va lossy kodekda ozgina sifat yo'qotiladi.

Maslahat: Eng qisqa shakl ham ishlaydi: ffmpeg -i video.mp4 video.webm. Kodek ko'rsatilmasa, ffmpeg uni kengaytmadan tanlaydi. WebM uchun odatda VP9 va Opus oladi. Lekin nima bo'layotganini bilish uchun kodekni aniq yozgan ma'qul.

Tekshirib ko'ring: ffmpeg -i darslik.mkv -c copy darslik.mp4 buyrug'idan keyin video sifati yomonlashadimi?

Javob

Yo'q. -c copy oqimlarni qayta siqmaydi, faqat MKV qutisidan MP4 qutisiga ko'chiradi. Kodeklar va sifat o'zgarmaydi. Shuning uchun bu buyruq juda tez ishlaydi.


7. Saytda: brauzerga bir nechta variant berish

HTML'ni hali o'rganmadik — uni video va audio darsida batafsil ko'ramiz. Hozir faqat g'oyani ko'ring. Sahifada videoni bunday yozish mumkin:

html
<video controls>
  <source src="video.webm" type="video/webm">
  <source src="video.mp4" type="video/mp4">
  Brauzeringiz bu videoni ko'rsata olmaydi.
</video>

Brauzer variantlarni yuqoridan pastga o'qiydi. Birinchisini (WebM, masalan AV1) tushunsa — o'shani oladi. Tushunmasa — keyingisiga (H.264 li MP4) o'tadi. Hech birini tushunmasa, oxirgi matnni ko'rsatadi.

type="video/webm" — MIME turi. U brauzerga faylni yuklab olishdan oldin "bu nima ekanini" aytadi.


8. Ko'p uchraydigan xatolar

8.1 iPhone videosi kompyuterda qora ekran

iPhone kamerasi odatda H.265 (HEVC) da yozadi. Windows'dagi ba'zi pleyer va brauzerlar uni ocha olmaydi: ovoz eshitiladi, rasm esa ko'rinmaydi.

Yechim: videoni "To'rtta foydali retsept"dagi 1-retsept bilan H.264 ga o'giring. Yoki iPhone sozlamalarida (Kamera → Formatlar) "Most Compatible" (eng mos) rejimini tanlang — shunda kamera H.264 da yozadi.

8.2 Kengaytmani qo'lda o'zgartirish

kino.mkv nomini kino.mp4 ga o'zgartirish faylni MP4 ga aylantirmaydi. Ichidagi baytlar o'zgarmadi, faqat nomi o'zgardi. Ba'zi pleyerlar bunday faylni ochib ham beradi, lekin brauzer va boshqa dasturlar adashadi.

Yechim: konteynerni ffmpeg -i kino.mkv -c copy kino.mp4 bilan to'g'ri almashtiring.

8.3 WebM ga mos bo'lmagan kodekni "ko'chirish"

H.264 li MP4 ni qayta siqmasdan WebM ga ko'chirmoqchi bo'ldingiz:

bash
ffmpeg -i video.mp4 -c copy video.webm

ffmpeg xato beradi:

text
Only VP8 or VP9 or AV1 video and Vorbis or Opus audio
and WebVTT subtitles are supported for WebM.
Could not write header (incorrect codec parameters ?)

Tarjimasi: "WebM ichida faqat VP8, VP9 yoki AV1 video, Vorbis yoki Opus ovoz va WebVTT subtitr bo'la oladi. Fayl sarlavhasini yozib bo'lmadi (kodek parametrlari noto'g'rimi?)."

Bu xato konteyner va kodek farqini juda yaxshi ko'rsatadi. Har konteyner faqat ma'lum kodeklarni sig'diradi. WebM qutisiga H.264 sig'maydi.

Yechim: -c copy o'rniga kodekni qayta siqing: -c:v libvpx-vp9 -c:a libopus.

8.4 ffmpeg topilmadi

text
bash: ffmpeg: command not found

PowerShell'da esa: The term 'ffmpeg' is not recognized as the name of a cmdlet...

Tarjimasi: "ffmpeg degan buyruq topilmadi". Yo ffmpeg o'rnatilmagan, yo terminal uni PATH ichidan topa olmayapti. Ko'pincha o'rnatgandan keyin terminalni qayta ochish kifoya.

8.5 Nutqni keraksiz yuqori bitrate bilan saqlash

Ma'ruza yoki podkastni 320 kbit/s MP3 da saqlash faylni keraksiz og'irlashtiradi. Nutq uchun 64–96 kbit/s AAC yoki 24–48 kbit/s Opus yetarli. Hajm 3–10 barobar kichrayadi, quloq esa farqni deyarli sezmaydi.


9. Mashqlar

1-mashq (oson): Konteyner yoki kodek?

Har birini "konteyner" yoki "kodek" deb belgilang: MP4, H.264, Opus, WebM, AAC, MOV, AV1, Ogg.

Ishora: "Konteyner (container)" va "Kodek (codec)" bo'limlaridagi ro'yxatlarga qarang.

Yechim
  • Konteynerlar: MP4, WebM, MOV, Ogg — bular "quti", fayl kengaytmasi shularni bildiradi.
  • Kodeklar: H.264 va AV1 (video), Opus va AAC (ovoz) — bular siqish usuli.

Adashtiradigan holat: MP3 — ham kodek, ham fayl turi ("MP3" bo'limida ko'rdik). Shuning uchun uni ro'yxatga qo'shmadik.

2-mashq (o'rta): Hajmni hisoblang

Jasur 3 daqiqalik ovozli xabar (Opus, 32 kbit/s) va 3 daqiqalik qo'shiq (MP3, 320 kbit/s) yubormoqchi.

  1. Har birining hajmini hisoblang.
  2. Qo'shiq ovozli xabardan necha barobar katta?

Ishora: "Hajmni hisoblash formulasi" bo'limidagi formula — bitrate × soniya ÷ 8.

Yechim

3 daqiqa = 180 soniya.

  1. Ovozli xabar: 32 000 × 180 ÷ 8 = 720 000 bayt ≈ 720 KB.
  2. Qo'shiq: 320 000 × 180 ÷ 8 = 7 200 000 bayt ≈ 7,2 MB.
  3. 7 200 000 ÷ 720 000 = 10 barobar.

Bitrate 10 barobar katta — hajm ham 10 barobar katta. Davomiylik bir xil bo'lsa, hajm bitrate'ga to'g'ri proporsional.

3-mashq (qiyin): Malikaning videosi

Malika ffmpeg -i dokon.mov buyrug'ini yozdi va shuni ko'rdi (qisqartirilgan):

text
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dokon.mov':
  Duration: 00:01:00.00, bitrate: 16240 kb/s
  Stream #0:0: Video: hevc (Main), 1920x1080, 30 fps
  Stream #0:1: Audio: aac (LC), 44100 Hz, stereo
  1. Konteyner, video kodek va ovoz kodeki qaysi?
  2. Nega do'stining Windows kompyuterida faqat ovoz eshitildi?
  3. Veb uchun H.264 li MP4 yasaydigan buyruqni yozing (CRF 23, AAC 128 kbit/s, natija — dokon.mp4).
  4. Faylning hozirgi hajmini hisoblang.

Ishora: hevc — H.265 ning boshqa nomi. Buyruq uchun "To'rtta foydali retsept"dagi 1-retseptga qarang.

Yechim
  1. Konteyner — MOV (Apple'ning MP4 ga yaqin qutisi). Video — H.265 (HEVC). Ovoz — AAC.
  2. AAC ni kompyuter tushunadi — ovoz chiqdi. H.265 uchun esa apparat dekoder yoki kerakli kengaytma yo'q — rasm chiqmadi.
  3. Buyruq:
bash
ffmpeg -i dokon.mov -c:v libx264 -crf 23 -c:a aac -b:a 128k dokon.mp4
  1. 16 240 000 × 60 ÷ 8 = 121 800 000 bayt ≈ 122 MB. Veb uchun bu juda ko'p. CRF 23 bilan H.264 odatda ancha kichik fayl beradi — aniq hajm videoning mazmuniga bog'liq.

10. Real ishda

  • Video platformalar. YouTube'ga yuklangan har bir video serverda qayta siqiladi va bir nechta sifatda (360p, 720p, 1080p) saqlanadi. Bu ishni ffmpeg yoki unga o'xshash vositalar bajaradi.
  • Striming (streaming). Katta saytlar videoni bitta fayl qilib bermaydi. Uni 2–6 soniyalik mayda bo'laklarga bo'lib, internet tezligiga qarab sifatni almashtiradi. Bu texnologiya HLS yoki DASH deyiladi. Fayllar esa dunyo bo'ylab tarqalgan serverlar tarmog'i — CDN orqali yetkaziladi. Ikkalasini kursda keyinroq o'rganamiz, hozir bilish shart emas.
  • Backend. Foydalanuvchi saytga video yuklasa, server uni ffmpeg bilan veb uchun siqadi va bitta kadrdan muqova rasmi yasaydi.
  • Telegram bot. Bot ovozli xabar yuborishi uchun fayl Ogg ichidagi Opus bo'lishi kerak — "To'rtta foydali retsept"dagi 3-retsept aynan shu.
  • Intervyu savoli: "Konteyner va kodek farqi nima?" Javob: "Konteyner — oqimlarni saqlaydigan quti (MP4, WebM). Kodek — ularni siqish usuli (H.264, AV1, AAC)".

Xulosa

  • Fayl kengaytmasi konteynerni bildiradi (MP4, WebM, MOV). Kodek esa ichidagi siqish usuli (H.264, AV1, AAC, Opus).
  • Brauzer konteynerni ham, kodekni ham tushunishi kerak. Aks holda — qora ekran.
  • 2026 holatiga veb uchun: asosiy — H.264 li MP4, qo'shimcha — AV1 yoki VP9 li WebM.
  • Ovozda: MP3 — eski va hamma joyda, AAC — video ichida, Opus — ovozli xabar va qo'ng'iroqlarda.
  • Hajm = bitrate × soniya ÷ 8. Bitrate bitda, hajm baytda.
  • ffmpeg -i fayl ichini ko'rsatadi. -c copy qayta qadoqlaydi, -c:v libx264 esa qayta siqadi.

Keyingi dars: Shriftlar, arxivlar va hujjat fayllari — veb shriftlari (WOFF2), arxivlar (ZIP, tar.gz) va PDF bilan tanishamiz.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
Audio va video formatlari: konteyner, kodek va bitrate — IlmHamroh