mirror of
https://github.com/eliasstepanik/vdo.ninja.git
synced 2026-01-11 21:58:35 +00:00
55 lines
1.8 KiB
HTML
55 lines
1.8 KiB
HTML
<html>
|
|
<body>
|
|
<div id="output"></div>
|
|
<script>
|
|
|
|
function getSupportedMimeTypes(media, types, codecs) {
|
|
const isSupported = MediaRecorder.isTypeSupported;
|
|
const supported = [];
|
|
types.forEach((type) => {
|
|
const mimeType = `${media}/${type}`;
|
|
acodecs.forEach((codec2) => {
|
|
codecs.forEach((codec) => [
|
|
mimeType+';codecs="'+codec+', '+codec2+'"',
|
|
mimeType+';codecs:"'+codec+', '+codec2+'"',
|
|
mimeType+';codecs="'+codec.toUpperCase()+', '+codec2.toUpperCase()+'"',
|
|
mimeType+';codecs:"'+codec.toUpperCase()+', '+codec2.toUpperCase()+'"'
|
|
].forEach(variation => {
|
|
if (isSupported(variation)){
|
|
supported.push(variation);
|
|
}
|
|
}));
|
|
});
|
|
if (isSupported(mimeType))
|
|
supported.push(mimeType);
|
|
});
|
|
return supported;
|
|
};
|
|
|
|
// Usage ------------------
|
|
|
|
const videoTypes = ["webm", "ogg", "mp4", "x-matroska"];
|
|
const audioTypes = ["webm", "ogg", "mp3", "x-matroska"];
|
|
const codecs = ["vp9", "vp9.0", "vp8", "vp8.0", "avc1", "av1", "h265", "h.265", "h264", "h.264"]
|
|
const acodecs = ["opus"];
|
|
|
|
const supportedVideos = getSupportedMimeTypes("video", videoTypes, codecs);
|
|
const supportedAudios = getSupportedMimeTypes("audio", audioTypes, codecs);
|
|
|
|
console.log('-- Top supported Video : ', supportedVideos[0])
|
|
console.log('-- Top supported Audio : ', supportedAudios[0])
|
|
console.log('-- All supported Videos : ', supportedVideos)
|
|
console.log('-- All supported Audios : ', supportedAudios)
|
|
|
|
document.getElementById("output").innerHTML= "";
|
|
|
|
for (var i=0;i<supportedVideos.length;i++){
|
|
document.getElementById("output").innerHTML += supportedVideos[i]+"<br/>";
|
|
}
|
|
//for (var i=0;i<supportedAudios.length;i++){
|
|
//document.getElementById("output").innerHTML += supportedAudios[i]+"<br/>";
|
|
//}
|
|
</script>
|
|
|
|
</body>
|
|
</html> |