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 hata olarak kabul ettikleri şeyler 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 ö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, 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ı 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&#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üleyicisi, bit akışı sorunlarında hata ayıklamak için yararlı 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.