Birden fazla tarayıcıyı desteklemek için .mov
dosyanızı iki farklı kapsayıcıya (MP4 kapsayıcısı ve WebM kapsayıcısı) dönüştürmek üzere FFmpeg'i kullanmanız gerekir. Gerçek uygulamada, büyük olasılıkla aynı anda bir codec de belirtirsiniz. Şimdilik FFmpeg'in varsayılan ayarlarını kullanmasına izin veriyoruz.
Bu kavramlar sizin için yeniyse devam etmeden önce Medya dosyası ile ilgili temel bilgiler başlıklı makaleyi okumanız gerekir. Ayrıca, FFmpeg yüklü değilse Docker ile ayarlamak için Medya uygulamasıyla ilgili temel bilgiler bölümünü okuyun.
Önerilen Docker kurulumunu ve media
dizinine eklenen Medya dosyalarını web için hazırlama bölümündeki glocken.mov dosyasını kullanıyoruz. Bu bölümdeki tüm komutlar için FFmpeg 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ı oluşturmamız gerekir. Bu kapsayıcılarda hem ses hem de video akışı bulunmalıdır.
Kapsayıcı ve akışlar arasındaki farkları bilmiyorsanız kapsayıcılar ve akışlar hakkında daha fazla bilgi edinmek için Medya dosyası ile ilgili temel bilgiler başlıklı makaleyi inceleyin.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
WebM'in oluşturulması MP4'ten daha uzun sürer. Sonuçlara baktığınızda bu durum şaşırtıcı değildir. MP4, orijinal dosyanın boyutunun yaklaşık 83%
'üne kadar sıkıştırılırken WebM, orijinal boyutun 78%
'üne kadar sıkıştırılır ancak çok daha küçük olabilir.
Sonuçlarınız değişiklik gösterir. FFmpeg 4.2.2
'te varsayılan video bit hızının 200k
olarak ayarlandığını ve 4.3.2
'de varsayılan bit hızı ayarlanmadığını belirtmek önemlidir.
Bu nedenle video artık orijinal videonun4%
bir kopyası değildir. 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 bunun yerine şunları yapmanız gerekir:
/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 Medya uygulamasıyla 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
Ardından codec. Medya dosyası ile ilgili temel bilgiler bölümünde belirtildiği gibi, codec kapsayıcı (dosya türü) ile aynı değildir. Aynı kapsayıcı türüne sahip 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. Kodeğiciyi değiştirmek için FFmpeg'i kullanırız. Örneğin, bu komut vorbis
ses codec'i ve av1
video codec'i içeren bir .mkv
dosyası oluşturur.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
Bu örnekte, -c:a
işareti ve -c:v
sırasıyla ses ve video codec'lerini belirtmek içindir.
Medya dönüştürme sayfasında, codec'leri dönüştürmek için gereken komutlar listelenir. Aşağıdaki tablolarda, WebM ve MP4 dosyaları için codec dönüştürme işlemlerini gerçekleştirmek üzere FFmpeg'te kullanılan kitaplıklar özetlenmiştir. 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 |
---|---|---|
aac | MP4 | aac |
opus | WebM | libopus |
vorbis | WebM | libvorbis |
Ardından, yeni oluşturulan dosyalarınızın bit hızını nasıl değiştireceğinizi göstereceğiz.