Web'de medya oynatma hatalarını ayıklama

François Beaufort
François Beaufort

Kod çözücü uygulamaları hata olarak değerlendirildiği için (özellikle de oynatma işlemi belirli bir codec'in daha ezoterik özelliklerini kullanıyorsa) hata olarak değerlendirildiği için <video> ve <audio> gibi HTML medya öğelerinde hata ayıklaması zor olabilir. Neyse ki bu konuda size yardımcı olabilecek çeşitli araçlar mevcut.

Medya oynatma hatalarında hata ayıklarken genellikle ilk olarak HTML medya öğesindeki MediaError error özelliğine göz atarız. Bu özellik, medya oynatma hatasının nedenine dair genel bir ipucudur. MediaError.code özelliği, bir medya öğesinde oluşan hatanın türünü temsil eden sayısal bir değer döndürür. Diğer MediaError.message özelliği, tarayıcıdan bazı teşhis bilgilerini içeren bir dize sağlayabilir.

const video = document.querySelector('video');
video.addEventListener('error', () => {
  console.log('Error code: ' + video.error.code);
  console.log('Error message: ' + video.error.message);
});

Bu özellikler en çok telemetri analizi için kullanışlıdır ve oynatma hatalarını ayıklamak için her zaman yeterli bilgi sağlamayabilir. Gizlilik nedeniyle bazen tam hata metni atlanmalıdır.

Tüm hata bilgilerine erişmek için Chrome Geliştirici Araçları'ndaki "Medya Paneli"ni kullanarak medya günlüklerini görüntüleyin. Medya oynatma hataları konusunda size iyi ipuçları verecek etkinlikler, uyarılar ve hata mesajları gibi pek çok bilgiyi burada bulabilirsiniz.

Chrome Geliştirici Araçları&#39;ndaki Medya Paneli ekran görüntüsü
Chrome Geliştirici Araçları'ndaki medya paneli.

Şu komut sayesinde ücretsiz FFmpeg uygulamasını kullanarak medya dosyası bütünlüğünü kontrol edebilirsiniz:

ffmpeg -err_detect explode -i <file> -f null -

Geçersiz codec'e sahip bir video dosyası için bu komutlarla alabileceğiniz bazı hatalar aşağıda verilmiştir:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc62df05380] Could not find codec parameters for stream 0 (Video: none (zzzz / 0x7A7A7A7A), none(smpte170m/smpte170m/bt709, progressive), 320x240, 4 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[matroska,webm @ 0x7fd45b705380] Unknown EBML doctype '0000'
[matroska,webm @ 0x7f8d17904d40] Element at 0x8b ending at 0x10400000095 exceeds containing master element ending at 0x9b
Truncating packet of size 9069 to 94

MP4Box.js / ISOBMFF Kutu Yapısı Görüntüleyicisi, bit akışı sorunlarında hata ayıklamak için yararlı bir araçtır. Ancak MP4'ü kullanmak için önceden bilgi sahibi olmanız gerekir.

Son olarak, VQAnalyzer, Elecard StreamEye ve Codecian CodecVisa gibi bazı video akışı analizi profesyonel araçları, ödediğiniz paraya değebilir.