Birden fazla tarayıcıyı desteklemek için .mov
dosyanızı bir MP4 kapsayıcısı ve bir WebM kapsayıcısı olmak üzere iki farklı kapsayıcıya dönüştürmek için FFmpeg kullanmanız gerekir. Gerçekte, muhtemelen aynı anda bir codec belirtirsiniz. Şimdilik FFmpeg'in varsayılanlarını kullanmasına izin veriyoruz.
Bu kavramlarla ilgili bilgi sahibi değilseniz devam etmeden önce Medya dosyası ile ilgili temel bilgiler bölümünü okumalısınız. Ayrıca, FFmpeg yüklü değilse Docker ile kurmak için Medya uygulaması ile ilgili temel bilgileri okuyun.
Önerilen Docker yüklemesini ve medya dosyalarını web için hazırla'dan media
dizinine eklenen glocken.mov dosyasını kullanıyoruz. Bu bölümdeki tüm komutlar için FFmpeg'in 4.3.2 sürümünü kullandık.
Container'lar
Öncelikle, .mov
dosyasından .mp4
ve .webm
dosya uzantılarına sahip iki kapsayıcımızı oluşturmamız gerekir. Bu kapsayıcının içinde hem ses hem de video akışı bulunmalıdır.
Kapsayıcılar ve akışlar hakkında bilgi sahibi değilseniz kapsayıcılar ve akışlar hakkında daha fazla bilgi için Medya dosyasıyla ilgili temel bilgiler bölümünü inceleyin.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
WebM'nin oluşturulması MP4'ten daha uzun sürer. Sonuçlara baktığınızda
bu şaşırtıcı değildir. MP4, orijinal dosya boyutunun yaklaşık 83%
kadarını sıkıştırırken WebM, orijinal dosyanın boyutundan 78%
kadar küçük olabilir ancak çok daha küçük olabilir.
Sonuçlar değişiklik gösterir. FFmpeg 4.2.2
öğesinin, varsayılan video bit hızını 200k
olarak ayarladığını ve 4.3.2
öğesinde varsayılan bit hızını ayarlamadığını belirtmek isteriz.
Bu nedenle video, artık orijinal videoyla sınırlı4%
kalmamaktadır. Medya dosyalarınızın bulunduğu klasörde ls -a
bash komutunu kullanarak bunu kendiniz görebilirsiniz.
Ö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 bir dosya almak için şu yolu izleyin:
/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 edin
Sonuçlarınızı doğrulamak için Medya Uygulaması ile ilgili temel bilgiler bölümünde gösterildiği gibi FFmpeg ve Shaka Packager'ı kullanın:
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
Codec'ler
Sonra codec. Medya dosyası temel bilgileri bölümünde belirtildiği gibi codec, kapsayıcı ile (dosya türü) aynı değildir. Aynı container türündeki iki dosya, farklı codec'ler kullanılarak sıkıştırılmış veriler içerebilir. Örneğin WebM biçimi, sesin Vorbis veya Opus kullanılarak kodlanmasına olanak tanır. codec'i değiştirmek için
FFmpeg'i kullanırız. Örneğin bu komut, vorbis
ses codec'ine ve av1
video codec'ine sahip bir .mkv
dosyası üretir.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
Bu örnekte -c:a
işareti ve -c:v
işareti, sırasıyla ses ve video codec'lerini belirtmek içindir.
Medya dönüşümü sayfası, codec'leri dönüştürmek için gereken komutları listeler. Aşağıdaki tablolarda, WebM ve MP4 dosyaları için codec dönüşümleri için FFmpeg'de kullanılan kitaplıklar özetlenmektedir. Bunlar, sırasıyla DASH ve HLS için önerilen biçimlerdir.
Video
Codec | Uzantı | Kitaplık |
---|---|---|
av1 | WebM, Mkv | Libaom-av1 |
h264 | MP4 | libx264 |
vp9 | WebM | libvpx-vp9 |
Ses
Codec | Uzantı | Kitaplık |
---|---|---|
AC | MP4 | AC |
opus | WebM | Libopus |
Vorbis | WebM | Libvorbis |
Bir sonraki adımda, yeni oluşturulan dosyalarınızın bit hızını nasıl değiştireceğinizi göstereceğiz.