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.
Ş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.