bvibber / ogv.js

JavaScript media player using Ogg/Vorbis/Theora/Opus/WebM libs compiled with Emscripten
https://brooke.vibber.net/misc/ogv.js/demo/
Other
1.2k stars 101 forks source link

10-bit AV1 is not supported #626

Open danielzgtg opened 1 year ago

danielzgtg commented 1 year ago

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
bvibber commented 6 months ago

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.