Skip to content

[Feat]: Codec Change at Constant Bitrate (Toggle) #22

Description

@uesu

Is your feature request related to a problem? / Est-ce lié à un problème ?

This was discussed in detail in #21 with STENS66 and Dodutils. As suggested by STENS66, I'm opening a dedicated issue feature request so it doesn't get buried in that discussion

Describe the solution you'd like / La solution que vous aimeriez

A toggle option that allows the user to change only the video codec while automatically carrying over the source video's original bitrate, without having to manually set it via the slider

How it would work:

  • User selects a target codec (e.g., AV1 or HEVC)
  • User enables the "Codec change only / Constant bitrate" toggle
  • The bitrate slider gets disabled/grayed out
  • The system reads the source video's bitrate and automatically applies it as the target bitrate
  • Audio can either be passed through untouched or optionally changed

Use Cases:

  1. Compatibility & Fixing Broken Videos

    • Re-encoding to a universally supported codec resolves playback issues across devices
    • Videos with unsupported codecs, broken containers (.mkv, .avi with damaged metadata), or audio-video codec mismatches can be fixed by re-encoding into a fresh file
  2. Web Design & Client Delivery

    • Converting H.264 videos to AV1 or HEVC for bandwidth-efficient web delivery without manually calculating or adjusting bitrate values
    • Quick codec swap to compare outputs before deciding on final settings
  3. Discord & Platform Sharing (Other Platforms, not just Discord)

    • Better playback and buffering performance due to smaller file sizes
    • AV1 and HEVC produce significantly smaller files at the same settings compared to H.264, which helps with Discord's file size limits (25MB free / 500MB Nitro) https://x.com/DiscordPreviews/status/2066673320221716700?s=20 (10 mb is still present, while early access or beta has the 15mb already
Image
  1. Batch Conversions

    • When converting multiple files, manually adjusting the bitrate slider for each one is tedious and time-consuming. This toggle would allow users to batch convert while keeping each file's original bitrate intact
  2. Experimentation

    • Sometimes you just want to see how a different codec handles the same content at the same bitrate without committing to a specific value

Comparison (original recordings, not re-encoded):

Same 40-second duration, same settings, only the codec differs:

Container:

H.264 (AVC) HEVC (H.265) AV1
Format MPEG-4 MPEG-4 MPEG-4
Format Profile Base Media Base Media Base Media
Codec ID iso4 (iso4/isom/obs1/iso2/avc1/mp41) iso4 (iso4/isom/obs1/iso2/mp41) iso4 (iso4/isom/obs1/iso2/mp41)
File Size 16.4 MiB 12.8 MiB 9.07 MiB

Video Stream:

H.264 (AVC) HEVC (H.265) AV1
ID 1 1 1
Format AVC HEVC AV1
Format/Info Advanced Video Codec High Efficiency Video Coding AOMedia Video 1
Format Profile High@L4.2 Main@L4.1@Main Main@L4.1
Format Settings CABAC / 4 Ref Frames
GOP M=5, N=120
Codec ID avc1 hvc1 av01

File size reductions:

Comparison Reduction
H.264 → HEVC ~21.9% smaller
H.264 → AV1 ~44.7% smaller
HEVC → AV1 ~29.1% smaller

These are straight from the original recording output with no transcoding involved

Technical Notes:

  • The system would need to probe the source file (via FFmpeg) to read the original video bitrate
  • The toggle should only apply to the video bitrate mode, not CRF (since CRF targets quality, not a specific bitrate)
  • This feature is purely optional. Users who don't need it can simply leave it disabled

Additional context / Contexte additionnel

Referenced discussion: #21 (comment)

As STENS66 noted:

"would you be so kind as to open a new ticket (Feature Request) specifically for this 'Codec change at constant bitrate' feature? It's a really good idea and I want to add it to my roadmap"

This feature would benefit not just my own workflow but also other users with similar needs who may encounter this software in the future. Since it would be optional, users who don't need it can simply leave it disabled or not use it

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions