Kapsayıcılar ve codec'ler

Derek Herman
Derek Herman
Joe Medley
Joe Medley

Birden fazla tarayıcıyı desteklemek için .mov öğenizi dönüştürmek için FFmpeg kullanmanız gerekir. dosyasını iki farklı kapsayıcıya yükleyebilirsiniz: bir MP4 kapsayıcısı ve bir WebM kapsayıcısı. İçinde aynı anda büyük olasılıkla bir codec belirtirsiniz. Şimdilik, FFmpeg'in varsayılan ayarlarını kullanmasına izin veriyoruz.

Bu kavramları yeni anlamadıysanız aşağıdakileri okumanızı öneririz: Medya dosyasıyla ilgili temel bilgiler inceleyin. Ayrıca, FFmpeg yüklü değilse Medya uygulamasıyla ilgili temel bilgiler ilk adımıdır.

Önerilen Docker yüklemesini kullanıyoruz ve Medya dosyalarını web için hazırlama sayfasındaki glocken.mov dosyasını media dizinine eklendi. Tüm bu etkinlikler için FFmpeg 4.3.2 sürümünü kullandık: komutlarını açıklayacağım.

Container'lar

İlk olarak, .mp4 içeren .mov dosyasından iki kapsayıcımızı oluşturmamız gerekir. ve dosya içinde hem ses hem de video akışı içeren .webm dosya uzantısı. Medya dosyasıyla ilgili temel bilgileri inceleyin arasındaki farkı bilmiyorsanız container'lar ve akışlar hakkında oluşturabilirsiniz.

  1. MP4

    /media # ffmpeg -i glocken.mov glocken.mp4
    
  2. WebM

    /media # ffmpeg -i glocken.mov glocken.webm
    

WebM'nin oluşturulması, MP4'e kıyasla daha uzun sürer. Baktığınızda bunun şaşırtıcı olmaması da daha iyi olur. MP4 orijinal dosyanın yaklaşık 83% kadarına sıkıştırılır WebM, orijinal boyutundan 78% kadar daha küçüktür, ancak çok daha küçük de olabilir. Sonuçlar değişiklik gösterir. FFmpeg 4.2.2'nin, varsayılan video bit hızı 200k olarak ayarlandı ve 4.3.2 için varsayılan bit hızı ayarlanmıyor. Bu nedenle video, artık orijinalinden4% farklı değil. Bunu kendiniz için de görebilirsiniz Medya dosyalarınızın bulunduğu klasörde ls -a bash komutunu kullanarak.

Örneğin:

/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root   9503301 Mar 7 18:30 glocken.webm

Küçük boyutlu bir dosya almak için bunun yerine şunu yaparsınız:

/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame=  300 fps=3.6 q=0.0 Lsize=     483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root    494497 Mar 7 18:45 glocken.webm

Çalışmanızı kontrol etme

Sonuçlarınızı doğrulamak için şurada gösterildiği gibi FFmpeg ve Shaka Packager'ı kullanın: Medya Uygulamasıyla ilgili temel bilgiler:

/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4

Codec'ler

Sırada codec. Medya dosyasıyla ilgili temel bilgiler bölümünde belirtildiği gibi, bir codec ile aynı şey değildir. Aynı kapsayıcıdan iki dosya türü, farklı codec'ler kullanılarak sıkıştırılmış veriler barındırabilir. Örneğin, WebM biçimi sesin Vorbis veya Opus kullanılarak kodlanmasına olanak tanır. codec'i değiştirmek için veya FFmpeg kullanın. Örneğin, bu komut vorbis ses özellikli bir .mkv dosyası üretir codec'i ve av1 video codec'ini destekler.

/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv

Bu örnekte, -c:a işareti ve -c:v, sesi ve video codec'lerini destekler.

Medya dönüşüm sayfası listeleri codec'leri dönüştürmek için gereken komutlar. Aşağıdaki tablolarda, Google Ads'de kullanılan . Bunlar, biçimleriyle birlikte DASH ve HLS için sırasıyla önerilir.

Video

Codec Uzantı Kitaplık
av1 WebM, mkv libaom-av1
h264 MP4 libx264
vp9 WebM libvpx-vp9

Ses

Codec Uzantı Kitaplık
aac MP4 aac
Opus WebM Libopus
Vorbis WebM libvorbis

Birazdan, yeni oluşturulan dosyalarınızın bit hızını nasıl değiştireceğinizi göstereceğiz.