fix(transcode): wire GPU H264/H265 encoders into the live path too#27
Open
Pon-node wants to merge 1 commit into
Open
fix(transcode): wire GPU H264/H265 encoders into the live path too#27Pon-node wants to merge 1 commit into
Pon-node wants to merge 1 commit into
Conversation
_handle_batch (fixed in livepeer#25) passes h264_encoder/h265_encoder through to profiles.normalize(), but _handle_live never did — live sessions always fall back to the CPU defaults (libx264/libx265) regardless of --h264-encoder/--h265-encoder, even on a GPU-configured runner. Found running in production: with TRANSCODE_H264_ENCODER=h264_nvenc set, 19 concurrent live sessions were silently encoding on CPU. nvidia-smi showed a single ffmpeg process (an unrelated batch job) using the GPU, while all the live sessions' encode work was invisible to it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #25.
_handle_batchpassesh264_encoder/h265_encoderthrough toprofiles.normalize(), but_handle_livenever did — live/trickle sessions always fall back to the CPU defaults (libx264/libx265) regardless of--h264-encoder/--h265-encoder, even on a fully GPU-configured runner.Found running in production: with
TRANSCODE_H264_ENCODER=h264_nvencset, 19 concurrent live sessions were silently encoding on CPU the whole time.nvidia-smishowed a singleffmpegprocess (an unrelated batch job) using the GPU — all the live sessions' encode work was invisible to it because it was never touching the GPU at all.Test plan
_handle_live'sprof.normalize()call only ever passedav1_encodernvidia-smithat concurrent live sessions showed zero GPU utilization/process presence despite GPU encoders being configured_handle_livenow passes all three encoder overrides, matching the batch path🤖 Generated with Claude Code