Skip to content

Recording (Windows): encode H.264 with the High profile #922

Description

@EtienneLescot

Part of #920 (rank 3). Effort S, risk low.

Problem

  • Screen and webcam are encoded as H.264 Constrained Baseline, 1 reference frame, CAVLC (measured with ffprobe). mf_encoder.cpp never sets MF_MT_MPEG2_PROFILE, so the Media Foundation encoder picks Baseline.
  • Re-encoding the same recordings through the same hardware MFT (NVENC, h264_mf -hw_encoding 1) at equal bitrate:
    • screen: +1.7 dB PSNR (45.31 → 46.98 dB at 4 Mbit/s);
    • webcam: +1.9 VMAF (89.11 → 91.05 at 4 Mbit/s).

Proposal

  • Ask for eAVEncH264VProfile_High on the output type (and CODECAPI_AVEncMPVProfile where the MFT reads it), with a fallback to the current behaviour if the encoder refuses it.
  • No B-frames: they broke the fragmented writer on macOS (negative offsets). Keep the GOP as is.

Verify

  • ffprobe reads profile=High on both tracks, hardware and software encoder paths.
  • Fragmented MP4 still plays and seeks; the compositor decodes and exports it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requeststatus: fixed in mainWork is merged into main but may not be in a downloadable release yet.status: pending releaseMerged change is waiting for a packaged desktop release.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions