w3c / webcodecs

WebCodecs is a flexible web API for encoding and decoding audio and video.
https://w3c.github.io/webcodecs/
Other
975 stars 137 forks source link

It takes a long time to output and also need input many frames in "prefer-hardware" #574

Closed yangfangfang1204 closed 1 year ago

yangfangfang1204 commented 1 year ago

config.hardwareAcceleration = "prefer-hardware" or "no-preference" we need input 6 video data to webcodecs and need to wait long time before the first frame output. and when we stop input , the webcodecs can not output all frames that we input .

1 rawDataCB timestamp:44560558,frameType:4097 hardrender.min.js:529 config.hardwareAcceleration:no-preference JSPlayerInterface.js:59 1 rawDataCB timestamp:44560598,frameType:4099 JSPlayerInterface.js:59 1 rawDataCB timestamp:44560638,frameType:4099 JSPlayerInterface.js:59 1 rawDataCB timestamp:44560678,frameType:4099 JSPlayerInterface.js:59 1 rawDataCB timestamp:44560718,frameType:4099 JSPlayerInterface.js:59 1 rawDataCB timestamp:44560758,frameType:4099 hardrender.min.js:565 output1 cb decodeQueueSize:0,timestamp:44560558,length:0,systime:15:25:45.322 JSPlayerInterface.js:59 1 rawDataCB timestamp:44560798,frameType:4099 hardrender.min.js:565 output1 cb decodeQueueSize:0,timestamp:44560598,length:0,systime:15:25:45.371 JSPlayerInterface.js:59 1 rawDataCB timestamp:44560838,frameType:4099 hardrender.min.js:565 output1 cb decodeQueueSize:0,timestamp:44560638,length:0,systime:15:25:45.400 JSPlayerInterface.js:59 1 rawDataCB timestamp:44560878,frameType:4099 hardrender.min.js:565 output1 cb decodeQueueSize:0,timestamp:44560678,length:0,systime:15:25:45.447 JSPlayerInterface.js:59 1 rawDataCB timestamp:44560918,frameType:4099

so if is there some config that could output all frames ?

dalecurtis commented 1 year ago

It'll depend on the type of stream you're providing -- it's not possible for some streams. It also sounds like an implementation specific issue; so please file such bugs at https://crbug.com/new. You can see a similar instance of this issue here: https://bugs.chromium.org/p/chromium/issues/detail?id=1352442 it turned out to be incorrect stream encoding.