bvibber/ogv.js

10-bit AV1 is not supported

Opened this issue · 1 comments

10-bit webm AV1 does not play. Please add it.

Normal AV1 with Opus works perfectly, but I would like to have the quality gains of 10-bit, and add support for others' 10-bit videos.

Steps

Put the video named av1.webm in a folder. Extract https://github.com/brion/ogv.js/releases/download/1.8.9/ogvjs-1.8.9.zip into that folder. Start python3 -m http.server. Add the following to a file called demo.html and go to it in Firefox:

<!doctype html><html>
<head><style>html,body{margin:0;padding:0;width:100%;height:100%;}</style></head>
<body>
<div id="containerElement" style="width:100%;height:100%"></div>
<script src="ogv.js"></script>
<script>
var player = new OGVPlayer({debug:true});
containerElement.appendChild(player);
player.src = 'av1.webm';
function hi() {
player.play();
setTimeout(() => player.pause(), 1000);
}
</script>
<button onclick="hi();">Play</button>
</body>
</html>

Expected behavior

The video should play.

Actual behavior

There is no video or any box shown on screen. The Opus audio plays, and sometimes it doesn't play depending on the video.

console-export-2023-3-19_4-23-55.txt

The following line seems to be the problem:

Compiled without support for 10-bit decoding ogv-decoder-video-av1-wasm.js:20:4

Note that there's currently no way to blit high bit depth or HDR data to a <canvas>, and I don't know whether WebCodecs will allow for playing 10-bit HDR frames through <video>.

Would be nice to handle 10-bit and do tone-mapping through.