# Cannot send RTP packet not associated to a Consumer

**URL:** <https://mediasoup.discourse.group/t/cannot-send-rtp-packet-not-associated-to-a-consumer/5816>\
**Category:** mediasoup-demo\
**Created:** [February 1, 2024, 3:50pm UTC](https://mediasoup.discourse.group/t/cannot-send-rtp-packet-not-associated-to-a-consumer/5816 "2024-02-01T15:50:50Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![kevinspooner](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/kevinspooner/32/2512_2.png) [@kevinspooner](https://mediasoup.discourse.group/u/kevinspooner)\
**Post date:** [February 1, 2024, 3:50pm UTC](https://mediasoup.discourse.group/t/cannot-send-rtp-packet-not-associated-to-a-consumer/5816/1 "2024-02-01T15:50:50Z")

</div>

Greetings!  
First of all thanks for awesome project, its crazy.

So, i need some help.  
I’m using an mediasoup-demo and trying to record video with fluent-ffmpeg  
My idea is to start recording video right after new customer connected. I’m think about getting RTP packets and write with fs.fileWriteStream and than convert them to needed format with ffmpeg

So what it done:

```auto
const tempFilePath = path.join(__dirname, '..', 'recording', `${Date.now()}.webm`);
const fileWriteStream = fs.createWriteStream(tempFilePath);

const directTransport = await this._mediasoupRouter.createDirectTransport();

const directProducer = await directTransport.produce({
	kind : producer.kind,
	rtpParameters : producer.rtpParameters
});

const directConsumer = await directTransport.consume({
	producerId : directProducer.id,
	rtpCapabilities : this._mediasoupRouter.rtpCapabilities
});

directConsumer.on('rtp', (rtpPacket) =>
{
	logger.info('rtpPacket', rtpPacket);
	const buffer = Buffer.from(rtpPacket.data);

	fileWriteStream.write(buffer);
});

directProducer.on('transportclose', () =>
{
	const ffmpegProcess = ffmpeg()
		.input(tempFilePath)
		.outputOptions([
			'-c:v libx264',
			'-preset ultrafast'
		])
		.output('output.mp4')
		.on('end', () =>
		{
			logger.info('Video conversion finished');
			fs.unlinkSync(tempFilePath);
		})
		.run();
});

```

But after connection and trying to producing data i have an error

```auto
RTC::DirectTransport::SendRtpPacket() | cannot send RTP packet not associated to a Consumer

```

I read the documentation (which is also great) but cant find any solution with this.  
Can anybody help me?  
Thanks and have a nice day!

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [February 1, 2024, 4:56pm UTC](https://mediasoup.discourse.group/t/cannot-send-rtp-packet-not-associated-to-a-consumer/5816/2 "2024-02-01T16:56:04Z")

</div>

That log only happens when probation RTP packets are sent (which do not have an associated Consumer). And those probation packets are sent because, for whatever happy reason, you are passing `rtpCapabilities: this._mediasoupRouter.rtpCapabilities` to `transport.consume()`, which is something that everyone does and honestly I don’t really understand why. You don’t want that mediasoup tests the available bandwidth of your DirectTransport so you should not give RtpCapabilities that include support for “transport-cc” and so on.

---

<div class="post-metadata">

**Author:** ![kevinspooner](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/kevinspooner/32/2512_2.png) [@kevinspooner](https://mediasoup.discourse.group/u/kevinspooner)\
**Post date:** [February 1, 2024, 9:11pm UTC](https://mediasoup.discourse.group/t/cannot-send-rtp-packet-not-associated-to-a-consumer/5816/3 "2024-02-01T21:11:27Z")

</div>

Thank you for your quick response.  
I understand that you may be tired of our stupid questions)))  
But I really don’t understand what should I do with “rtpCapabilities”.  
I’m not very good at this, but thanks for the direction in solving my mistakes.

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [February 1, 2024, 9:48pm UTC](https://mediasoup.discourse.group/t/cannot-send-rtp-packet-not-associated-to-a-consumer/5816/4 "2024-02-01T21:48:38Z")

</div>

No, the question was not stupid at all. I’m just curious about why everybody tries to use `router.rtpCapabilities` whne they need to call `transport.consume()` for a device/endpoint different than a browser.

- [mediasoup :: RTP Parameters and Capabilities](https://mediasoup.org/documentation/v3/mediasoup/rtp-parameters-and-capabilities/#RtpCapabilities)
- [mediasoup :: Communication Between Client and Server](https://mediasoup.org/documentation/v3/communication-between-client-and-server/#consuming-media)

---

<div class="post-metadata">

**Author:** ![kevinspooner](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/kevinspooner/32/2512_2.png) [@kevinspooner](https://mediasoup.discourse.group/u/kevinspooner)\
**Post date:** [February 2, 2024, 3:30pm UTC](https://mediasoup.discourse.group/t/cannot-send-rtp-packet-not-associated-to-a-consumer/5816/5 "2024-02-02T15:30:36Z")

</div>

Very appreciate for your response.  
This helps me with understanding and now my recording process working as should be.  
You are the best!!! 🙏
