Medya dosyasıyla ilgili temel bilgiler

Deniz Herman
Derek Herman
Ali Porsuk
Ali Polat

Bu makalede, kapsayıcı kavramları gibi medya dosyası temellerini ve akışta kullanabileceğiniz birçok mevcut codec biçimini öğreneceksiniz. Ayrıca, uyarlanabilir akış, bit hızı ve çözünürlük gibi konulara da kısaca değineceğiz. Ancak tüm bunları sonraki bölümlerde daha ayrıntılı olarak inceleyeceğiz.

Video dosyaları sunma

Bir video kameradan ham bir dosya alıp olduğu gibi, web'e olduğu gibi yükleyebileceğinizi düşünebilirsiniz. YouTube veya Vimeo gibi video akış siteleri tam da bunu yapmanızı sağlar ve hatta genellikle kameranızın HDMI bağlantı noktasına bağlanıp bir yakalama kartıyla işleyerek canlı yayın özellikleri sunar. Bu hizmetler, video işlemeyi ve yüklemeyi büyük ölçüde basitleştirir. Uyarlanabilir akış ve çeşitli çözünürlükler için gereken çok sayıda dosya ve manifest oluşturmayı içerir. Ayrıca, kendi barındırmayı biraz zor hale getiren diğer birçok karmaşık ve incelikli gereklilik. Kendi sitenizden ve muhtemelen ayrı bir medya sunucusundan video hazırlayıp sunmak, kullanıcılarınızın sitenizde nasıl bir deneyim yaşayacağına önem veriyorsanız ham kamera dosyası yüklemekten biraz daha karmaşıktır.

Video dosyaları çeşitli biçimlerde sunulur. Kameranızdan alınan biçim genellikle .mov dosyası veya iyi bir modern aynasız kameranız varsa .mp4 olur. Ancak .mov, kayıt, düzenleme ve diğer erken prodüksiyon sonrası işlemler için uygun olsa da dosya boyutu, web üzerinden akış için uygun olmadığı anlamına gelir. Ayrıca, ham bir .mp4 dosyasının 4K dosya boyutu, bu dosyanın mobil cihazlarda oynatılmasını son derece engeller. Tarayıcılar farklı dosya biçimlerini desteklediğinden, uyarlanabilir akışı desteklemeyi planlıyorsanız birden fazla optimize edilmiş dosya ve muhtemelen bir manifest oluşturmanız gerekir. Dosyaları dönüştürmeden önce dosyalar ve özellikleriyle ilgili birkaç temel bilgi edinmeniz gerekir.

Kapsayıcılar, codec'ler ve akışlar mı?

İşletim sistemi kabuğunda gördüğünüz dosya, bir dosya uzantısı (.mp4, .webm, .ogg vb.) tarafından tanımlanan bir kapsayıcıdır. Container, bir veya daha fazla akış barındırır. Medya dosyası, burada ele aldığımızdan çok daha fazla biçim içeren herhangi bir sayıda akışa sahip olabilir.

Bu bölümün ilerleyen kısımlarında kullanılan örnek dosyalar, bir ses akışı ve video akışı olmak üzere en fazla iki akış içerir. Karşılaşabileceğiniz diğer türler arasında altyazılar ve veriler yer alır. Bunların her ikisi de bu makalenin kapsamı dışındadır. Ses ve video akışlarının ayrı olarak ele alındığı durumlar vardır. Karşılaşacağınız çoğu dosya, yalnızca tek bir ses akışı ve tek bir video akışı içerir.

Ses ve video akışlarında gerçek veriler codec ile sıkıştırılır. Codec veya kodlayıcı/kod çözücü, video ya da ses verileri için kullanılan bir sıkıştırma biçimidir. Aynı kapsayıcıya sahip dosyaların içerikleri farklı codec'lerle kodlanabileceğinden kapsayıcı ile codec arasındaki ayrım önemlidir.

Aşağıdaki resimde bu yapı gösterilmektedir. Solda, iki akışlı temel container yapısı yer alır. Sağda, tek bir WebM dosyası için bu yapının ayrıntıları bulunmaktadır.

Medya dosya yapısını varsayıma dayalı medya dosyasıyla karşılaştırma.
Medya dosyasının bölümleri.

WebM kapsayıcılarındaki dosyalar, diğer biçimlerden daha küçük boyutlarda olabilir. Bu nedenle, mobil siteler için dosya akışı iyi bir seçenektir. Maalesef tüm tarayıcılar güncel kapsayıcıları ve codec'leri desteklemez. Örneğin, WebM yüksek kaliteli ve açık kaynaklı bir seçenek olarak özellikle web için oluşturulmuş olsa da sunduğu destek henüz genel değil. Özellikle Safari, Can I use (kullanabilir miyim?) uyarınca bu yazı yazıldığında yerleştirilmiş videolar için WebM'yi desteklemez. Ancak WebM'in, WebRTC'de kullanılan VP8 ve VP9 codec'i ile kısmi desteği vardır. Bu nedenle en iyi seçeneğiniz bir yedek video sağlamaktır.

Codec biçimleri

Birçok dosya türü, aynı kapsayıcı içinde birden fazla codec'i destekler. Mevcut video codec'lerinin ve ses codec'lerinin tam listesi başlı başına bir web sitesidir. Biraz önce sağlanan bağlantılar MDN'nin web'de kullanılabilecek öğelere ilişkin pratik listeleri içindir. Şu anda tercih edilen dosya türleri ve kullanabilecekleri codec'ler aşağıda listelenmiştir. Destekleyen tarayıcıları görüntülemek için dosya türü bağlantılarını izleyin.

Dosya türü Video Codec'i Ses Codec'i
MP4 AV1, AVC (H.264)*, VP9 AAC
WebM AV1, VP9* Vorbis, Opus

* Tercih edilen video codec'ini belirtir.

Bit hızı ve çözünürlük

Bit hızı, bir akışın bir saniyesini kodlamak için kullanılan maksimum bit sayısıdır. Bir akışın bir saniyesini kodlamak için ne kadar çok bit kullanılırsa potansiyel ayrıntı ve kalite de o kadar yüksek olur. Bu kavram hakkında daha fazla bilgiyi Bit hızı bölümünde bulabilirsiniz.

Çözünürlük, her bir boyuttaki mantıksal piksel sayısı olarak verilen, bir video karesindeki bilgi miktarıdır. Çözüm bölümünde bu kavram hakkında daha fazla bilgi verilmektedir.

Bir sonraki adımda, Medya uygulamasıyla ilgili temel bilgiler bölümünde iki komut satırı aracını kullanarak bu özellikleri nasıl inceleyeceğinizi göstereceğiz: Shaka Packager ve FFmpeg.