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

François Beaufort
François Beaufort

<video> ve <audio> gibi HTML medya öğelerinde hata ayıklama işlemi, özellikle oynatma işlemi belirli bir codec'in daha gizli özelliklerini kullanabileceğinden, kod çözücü uygulamalarının hataları nasıl değerlendirdiğine göre değişiklik gösterdiğinden (donanım kod çözücüler genellikle en katı olanlardır) zor olabilir. Neyse ki bu konuda yararlanabileceğimiz çeşitli araçlar vardır.

Medya oynatma hatalarıyla ilgili hata ayıklama yaparken genellikle ilk olarak HTML medya öğesindeki MediaError error özelliğini kontrol ederiz. Bu özellik, medya oynatma hatasına neyin neden olduğuna dair üst düzey bir ipucu sağlar. MediaError.code mülkü, bir medya öğesinde oluşan hata türünü temsil eden sayısal bir değer döndürür. Diğer mülk MediaError.message, 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, hata metninin tamamı bazen atlanabilir.

Hata bilgilerinin tamamına erişmek için Chrome Geliştirme Araçları'ndaki "Medya Paneli"ni kullanarak medya günlüklerini görüntüleyin. Medya oynatma hatalarıyla ilgili ipuçları edinebileceğiniz etkinlikler, uyarılar ve hata mesajları gibi birçok bilgi bulabilirsiniz.

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

Aşağıdaki komut sayesinde FFmpeg ücretsiz uygulamasını kullanarak da medya dosyasının 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 karşılaşabileceğiniz bazı hatalar şunlardır:

[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üleyici, bit akışıyla ilgili sorunları ayıklamak için faydalı bir araçtır. Ancak bu özelliği kullanabilmek için MP4'ü anlamış olmanız gerekir.

Son olarak, VQAnalyzer, Elecard StreamEye ve Codecian CodecVisa gibi bazı profesyonel video akışı analiz araçları paranızın karşılığını verebilir.