Closed kolserdav closed 1 year ago
I print the input.frame
from the processAudioInput
and processVideoInput
methods to the console and see that the time at the audio keyframe is still undefined:
[0] [1] {
[0] [1] data: <Buffer fc d6 f6 e0 5d a7 3e d6 b3 94 76 ea 5b be 7f 78 8a e1 8d 65 6a 4c d1 5f af e8 27 86 8e eb 6c d3 02 eb a1 a8 bb 65 b3 f8 fd 2b 91 b8 6f c8 53 de 8d 11 ... 111 more bytes>,
[0] [1] isKeyframe: true,
[0] [1] time: undefined,
[0] [1] sequence: 0,
[0] [1] rtpSeq: 26622,
[0] [1] timestamp: 3195314228
[0] [1] } audio
[0] [1] 2
[0] [1] 02:43:53 error unhandledRejection Error: baseTime not exist
[0] [1] at ClusterTimestamp.update (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webm.js:249:19)
[0] [1] at WebmStream.onFrameReceived (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webm.js:145:40)
[0] [1] at WebmStream.processInput (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webm.js:118:14)
[0] [1] at WebmStream.value [as processAudioInput] (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webm.js:88:26)
[0] [1] at Object.write (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webmStream.js:39:26)
[0] [1] at ensureIsPromise (node:internal/webstreams/util:172:19)
[0] [1] at writableStreamDefaultControllerProcessWrite (node:internal/webstreams/writablestream:1091:5)
[0] [1] at writableStreamDefaultControllerAdvanceQueueIfNeeded (node:internal/webstreams/writablestream:1206:5)
[0] [1] at writableStreamDefaultControllerWrite (node:internal/webstreams/writablestream:1080:3)
[0] [1] at writableStreamDefaultWriterWrite (node:internal/webstreams/writablestream:969:3)
[0] [1]
[0] [1] 1
[0] [1] {
[0] [1] data: <Buffer d1 27 00 e3 9b 3f b8 97 f0 ed 20 62 bc e0 3d 59 bd 9b bf 64 84 71 0d ee 84 00 41 56 34 42 46 d8 82 59 3c de ac 04 97 55 55 72 b1 48 cf df 0a 81 79 a2 ... 2289 more bytes>,
[0] [1] isKeyframe: false,
[0] [1] time: 0,
[0] [1] sequence: 0,
[0] [1] rtpSeq: 9800,
[0] [1] timestamp: 4173142451
[0] [1] } video
You can also see that the video input doesn't start at a keyframe (but that's a separate issue).
This is https://github.com/shinyoshiaki/werift-webrtc/blob/ab1b4d236a937d832468fe93296330aeb370eea5/packages/rtp/src/processor/depacketizer.ts#L105 where item.time
is expected to be valid, but at run time the input
looks like this:
[0] [1] {
[0] [1] rtp: RtpPacket {
[0] [1] header: RtpHeader {
[0] [1] version: 2,
[0] [1] padding: false,
[0] [1] paddingSize: 0,
[0] [1] extension: false,
[0] [1] marker: false,
[0] [1] payloadOffset: 12,
[0] [1] payloadType: 109,
[0] [1] sequenceNumber: 25080,
[0] [1] timestamp: 1597379503,
[0] [1] ssrc: 4085557688,
[0] [1] csrcLength: 0,
[0] [1] csrc: [],
[0] [1] extensionProfile: 48862,
[0] [1] extensionLength: undefined,
[0] [1] extensions: []
[0] [1] },
[0] [1] payload: <Buffer fc 72 e2 18 37 ed 37 85 3f 94 ae d0 4e 0e dc 41 35 b0 31 3f b3 7d 07 22 65 97 9d 5c a8 e9 53 46 f4 d7 36 c1 9d 0c 39 52 d5 cd 2c 7e 21 b1 d8 31 40 a6 ... 151 more bytes>
[0] [1] }
[0] [1] }
[0] [1] 11:38:28 error unhandledRejection Error: baseTime not exist
[0] [1] at ClusterTimestamp.update (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webm.js:246:19)
[0] [1] at WebmStream.onFrameReceived (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webm.js:142:40)
[0] [1] at WebmStream.processInput (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webm.js:116:14)
[0] [1] at WebmStream.value [as processAudioInput] (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webm.js:87:26)
[0] [1] at Object.write (/home/kol/Projects/werift-sfu-react/node_modules/werift/lib/rtp/src/processor/webmStream.js:39:26)
[0] [1] at ensureIsPromise (node:internal/webstreams/util:172:19)
[0] [1] at writableStreamDefaultControllerProcessWrite (node:internal/webstreams/writablestream:1091:5)
[0] [1] at writableStreamDefaultControllerAdvanceQueueIfNeeded (node:internal/webstreams/writablestream:1206:5)
[0] [1] at writableStreamDefaultControllerWrite (node:internal/webstreams/writablestream:1080:3)
[0] [1] at writableStreamDefaultWriterWrite (node:internal/webstreams/writablestream:969:3)
[0] [1]
@kolserdav try v0.18.0
After updating to version 0.17.7, recording through MediaRecorder stopped working with the following error: