Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(*): webcodecs draft #60

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

feat(*): webcodecs draft #60

wants to merge 2 commits into from

Conversation

stepancar
Copy link
Contributor

@stepancar stepancar commented Oct 25, 2024

Libavjs webcodecs draft

Here I'm trying to replace beamocoder with libavjs+webcodecs, without any logic modification.

Decoding and drawing 10 seconds of frames with html video element
https://stepancar.github.io/articles/articles/html-video-element-seeking/
video: https://github.com/Lumen5/framefusion/blob/main/test/samples/bbb10m.mp4

{
"totalFramesGenerated": 301,
"totalTime": 19838.19999998808,
"seekingTimePerFrame": 65.90764119597368,
"seekingFPS": 15.172747527506573,
}

Same video with libavjs + webcodecs is 20 times faster
Decoded videos segment with duration: 10.033333333333308
test.html:48 Decoded frames count: 300.99999999999926
test.html:49 Rendering time: 481
test.html:50 FPS: 625.7796257796242
test.html:51 Average frame decoding time: 1.5980066445182763
Its faster than original framefusion on my machine

right now it's not 100% compatible. here we use another seeking method, because I'm waiting release of this PR
Yahweasel/libav.js#68

@stepancar stepancar marked this pull request as draft October 25, 2024 11:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant