Skip to content

[FEATURE] Video encoding settings. #927

Open
@rastop123g

Description

@rastop123g

Recently (about six months ago), while observing the growth of our recording storage, we considered compressing the recordings. There were two options: compress the recordings during the recording process itself or compress them at a later time. We tried both approaches and found that the CPU load does not significantly increase (though it does rise) when compressing during the encoding in egress. I decided to experiment with the settings of x264Enc, specifically with speed-preset, pass, quantizer, and bitrate. In my use case of recording video calls with room composite egress, the file size was reduced by 8-10 times (at the cost of a small CPU overhead, which turned out to be acceptable for us, as it may be for others as well).

I would love to tackle this myself, but I’ve never written in Go, and it seems very confusing to me. At this point, I’ve changed a couple of lines in pkg/pipeline/builder/video to include my desired settings for speed-preset, pass, quantizer, and bitrate. I’ve been using it for six months, and it’s working fine. However, I have to build it myself and keep track of new versions to rebuild. I think it would be great to add the ability to configure the encoder in the YAML config while keeping the current settings as defaults.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions