Skip to content

Conversation

@MiloszFilimowski
Copy link
Contributor

Description

  • Added codecs info

@linear
Copy link

linear bot commented Feb 17, 2025

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Calling it a miscellaneous section makes it easy to overlook. I imagine people coming here when they have some issues. Maybe "Troubleshooting" would be more adequate?

- **VP8**: A software codec supported by all devices, making it the most compatible choice.
- **H.264**: A hardware codec that offers better performance but is not supported in some environments, such as Android emulators.

For optimal compatibility, choose VP8 when running in environments where hardware acceleration is unavailable.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: I'm not sure about the details here, but I think we should mention whether this is a decoding or encoding limitation and whether this issue can be solved by setting the codec client-side on some devices.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's for both. Either the device supports the negotiated codec or it doesn't.

- **H.264**
- **VP8**

### Default Codec Behavior
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not true. VP8 is default in videoroom. If I would use sandbox with my own server implementation on sandbox - H.264 would be default.

Maybe this article should focus on explaining why room manager has VP8 (android emulator) and why h.264 should be used on production? 🤔

@MiloszFilimowski MiloszFilimowski force-pushed the mfilimowski/FCE-1215-unsupported-codecs branch from 15e18fe to 59b83e1 Compare February 18, 2025 09:46

### Changing the Codec

Override the default codec by setting the `codec` parameter when [creating a room](/api/server/interfaces/RoomConfig#videocodec) using server SDKs. Some clients may also allow codec selection on the device level.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (blocking): This doesn't specify what the default codec is. I think it should be outlined citing the reasons below


### Changing the Codec

Override the default codec by setting the `codec` parameter when [creating a room](/api/server/interfaces/RoomConfig#videocodec) using server SDKs. Some clients may also allow codec selection on the device level.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (non-blocking): I would love a source here on the "device level" selection. As person that doesn't dabble in this area often I think it would be helpful for less experienced people too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm just going to remove this line. We should not concern our users with this as it's all handled internally and should not be changed.

- **VP8**: A software-based codec supported across all devices, ensuring maximum compatibility. It's ideal for environments lacking hardware acceleration, such as Android emulators.
- **H.264**: A hardware-accelerated codec offering superior performance. However, its availability varies by device, and it may not perform optimally at lower bitrates.

For optimal performance and compatibility, assess your application's requirements and the environments in which it will operate when selecting a codec.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (non-blocking): Still not sure average developer would know which codec to use. Maybe some examples could be helpful?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess I can add a suggestion to use H.264 in production and VP8 in production.

@MiloszFilimowski MiloszFilimowski force-pushed the mfilimowski/FCE-1215-unsupported-codecs branch from 19efb9b to 5bd9c73 Compare February 19, 2025 10:54
Copy link
Contributor

@mironiasty mironiasty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general it is ok. Maybe we can go for another iteration soon to clarify things.


## Default Codec

Fishjam uses H.264 by default, however, for better compatibility, VP8 is set when you're using Room Manager on Sandbox.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would still consider adding here explanation that is not just about general compatibility, but to solve issue with android emulator. As I'm reading it now, I would be afraid to enable h.264 for production too.

@MiloszFilimowski MiloszFilimowski enabled auto-merge (squash) February 20, 2025 10:19
@MiloszFilimowski MiloszFilimowski merged commit 15e2e29 into main Feb 20, 2025
1 check passed
@MiloszFilimowski MiloszFilimowski deleted the mfilimowski/FCE-1215-unsupported-codecs branch February 20, 2025 10:22
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.

5 participants