14:58:25 RRSAgent has joined #evolved-webcodecs 14:58:29 logging to https://www.w3.org/2024/09/25-evolved-webcodecs-irc 14:58:29 RRSAgent, do not leave 14:58:30 RRSAgent, make logs public 14:58:31 Meeting: Evolved Video Encoding with WebCodecs 14:58:31 Chair: Erik Språng, Eugene Zemtsov 14:58:31 Agenda: https://github.com/w3c/tpac2024-breakouts/issues/71 14:58:31 Zakim has joined #evolved-webcodecs 14:58:32 Zakim, clear agenda 14:58:32 agenda cleared 14:58:32 Zakim, agenda+ Pick a scribe 14:58:33 agendum 1 added 14:58:33 Zakim, agenda+ Reminders: code of conduct, health policies, recorded session policy 14:58:33 agendum 2 added 14:58:33 Zakim, agenda+ Goal of this session 14:58:34 agendum 3 added 14:58:34 Zakim, agenda+ Discussion 14:58:34 agendum 4 added 14:58:34 Zakim, agenda+ Next steps / where discussion continues 14:58:35 agendum 5 added 14:58:35 tpac-breakout-bot has left #evolved-webcodecs 18:12:43 PeterThatcher has joined #evolved-webcodecs 18:13:30 baboba1 has joined #evolved-webcodecs 18:13:30 ktoumura has joined #evolved-webcodecs 18:13:40 sprang has joined #evolved-webcodecs 18:15:39 I'm taking notes 18:15:52 [slide 1] 18:16:31 [slide 2] 18:16:43 [slide 3] 18:16:59 [slide 4] 18:17:10 Niko has joined #evolved-webcodecs 18:17:15 [slide 5] 18:17:25 JonathanLennox has joined #evolved-webcodecs 18:17:28 DanilC has joined #evolved-webcodecs 18:17:34 jh has joined #evolved-webcodecs 18:17:39 Bernd has joined #evolved-webcodecs 18:17:44 riju7 has joined #evolved-webcodecs 18:17:45 [slide 6] 18:17:46 eugene has joined #evolved-webcodecs 18:19:01 jib0 has joined #evolved-webcodecs 18:19:03 [slide 7] 18:19:13 handellm has joined #evolved-webcodecs 18:19:23 okin has joined #evolved-webcodecs 18:20:29 padenot has joined #evolved-webcodecs 18:20:57 [slide 8] 18:20:59 q+ 18:21:05 MikeW has joined #evolved-webcodecs 18:25:38 [slide 9] 18:26:25 chrisguttandin has joined #evolved-webcodecs 18:28:16 [slide 11] 18:30:50 [slide 12] 18:31:34 +q 18:32:08 q+ 18:32:26 q+ 18:32:48 q+ 18:34:21 q- 18:34:37 [slide 12] 18:34:46 Peter: Is there an LTR example? 18:34:51 Erik: Not yet 18:34:57 Peter: How many buffers can I have? 18:35:12 Erik: AV1: 8, VP9: 8, H265: 32, H264: 16, VP8: 3 18:35:17 q+ 18:37:16 hta has joined #evolved-webcodecs 18:40:32 From many: discussion of making the API be done a different way, using EncodeVideoChunk or some other object 18:40:57 ?: What are the benefits vs. scalability modes 18:41:27 Erik: If you come up with something new, you have to go through a standards body, which is painful for what would be one page of code 18:41:46 Benard: a lot more recovery options available with this API 18:41:50 [slide 10] 18:42:02 ?: About the example 18:42:19 ?: What about things that receive feedback from the other side could be provided? 18:42:23 +q 18:42:41 Erik: This is just the encoder, but you could implement feedback from the other side and then decide things, such as for an LTR 18:43:02 q- baboba 18:43:07 q- padenot 18:43:12 q- handellm 18:43:22 q+ baboba 18:43:25 Bernard: RPSI is an example of "I hold this reference", and people have implemented it for the 1:1 case 18:43:45 Bernard: but it doesn't seem to work for a conference 18:44:11 Bernard: Google was working on "LTF" (?) 18:46:15 Lennox: Might be nice to say "hey this is LTR" on the decode side (?) 18:46:30 Lennox: what is the perf on running JS on every frame? 18:46:48 ?: Not much compared to encoding 18:46:53 ?: You should probably use a Worker 18:47:36 Lennox: B-frames? 18:47:41 joachimr5 has joined #evolved-webcodecs 18:47:53 Erik: Technically, you can do that if you have side channel info 18:48:10 Erik: But the API would need an extension to be "spec compliant" B-frames 18:48:27 ?: Can do B-frames "manually" 18:48:47 q- 18:48:48 q- 18:51:30 q- PeterThatcher 18:51:31 q- 18:51:44 Peter: So how does this work? 18:51:45 q- baboba 18:52:30 ?: You use buffers[i] instead of i, but you basically have a fixed number of buffers you can save to and reference from 18:53:58 Discussion: Easier to update JS than browsers, but still might need OS updates to get hardware encoder support (?) 18:54:36 [slide 13] 18:56:13 q+ Elad 18:58:07 [slide 18] 18:59:29 +q 18:59:32 ack Elad 18:59:35 Elad: Your view seems convincing. Did you consult privacy experts? 18:59:39 Erik: Not yet. 18:59:54 Bernard: Privacy experts do not know about encode/decode 19:00:31 Bernard: Regarding choices: my problem with returning capabilities is that I formulate a query to get a "no", so I like the idea of enumerating 19:00:42 Bernard: Maybe we block enumeration behind some permission 19:01:38 ?: Have you looked into MediaCapabilities? 19:02:00 Paul: Might as well extend MediaCapabilities if you're going to extend something. 19:02:07 ack baboba 19:02:10 Erik: Yes, we should look into that 19:03:49 [slide 20] 19:06:14 q+ 19:06:21 Paul: One callback or multiple callbacks? 19:06:25 Erik: Probably serveral 19:06:26 q+ 19:06:47 Erik: Simulcast doesn't matter; SVC has to be in the right order 19:06:57 ack JonathanLennox 19:07:29 Lennox: How does this work with "manual?" 19:07:41 Erik: You would set things differently for each layer 19:07:54 Lennox: need control per layer about quality 19:08:21 ? VideoEncoderEncodeOptions that always has QP value, so you can set it 19:08:45 Bernard: what about bitrate? 19:09:09 Erik: We're going CQP route 19:09:24 sun has joined #evolved-webcodecs 19:09:31 Erik: target bitrate is much more complex with time, timestamps, etc 19:09:41 ack PeterThatcher 19:11:31 Peter: How do I control inter-layer dependencies? 19:11:44 Erik: Use the buffers from the "manual" control from before 19:11:45 q- 19:13:46 q+ 19:14:05 Peter: What is available behind the feature flag? 19:14:24 ?: Everything from [slide 8] 19:14:44 ?: For hardware support: have to wait 19:14:59 ?: Anything beyond [slide 8], we don't know yet 19:15:32 Peter: Can you upload examples/demos somewhere? 19:15:37 Erik: Yes 19:16:22 q- 19:18:49 sun has left #evolved-webcodecs 19:21:31 generate minutes 19:21:48 zakim generate minutes 20:06:08 ktoumura has left #evolved-webcodecs