Skip to content

fix: return-encoder-quality/#478 - #479

Merged
finefinee merged 3 commits into
mainfrom
fix/return-encoder-quality/#478
Oct 16, 2026
Merged

finefinee merged 3 commits into
mainfrom
fix/return-encoder-quality/#478

Conversation

@finefinee

@finefinee finefinee commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

변경 내용

  • WebRTC 반환 bitrate 해상도별 적용(720p 2M, FHD 4M, VP8·H.264 공통)
  • H.264 반환 VBV 200k에서 1초 분량으로 확대, level 720p 3.1·FHD 4.0 선택
  • VP8 -cpu-used 8과 NVENC 송출 -preset p1 유지

검증 결과

  • go test ./... 통과, go test -tags egress_harness ./internal/media/ 통과
  • 실 ffmpeg 하네스 720p 2.02.1Mbps, FHD 4.04.1Mbps, H.264 level_idc 31·40 확인
  • NVENC p4·p5 지연·GPU 부하는 GPU 서버 실측 대기, 실기기 반환 화질 미검증

머지 체크리스트

  • 변경 범위 확인
  • 반환 인코더 인자 단위 테스트 통과
  • 실 ffmpeg 720p·FHD 반환 인코딩 확인
  • 세션당 CPU 변화 Issue 기록

관련 이슈

finefinee and others added 3 commits October 16, 2026 18:39
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@finefinee

Copy link
Copy Markdown
Member Author
  • GPU 서버 운영 ffmpeg 5.1.9 실측 결과 fix: WebRTC 반환·RTMP 송출 인코더 화질 개선 #478 댓글 기록, 변경 경로 화질 개선 확인
  • H.264 FHD PSNR 평균 +4.76dB·최저 +4.36dB, H.264 720p 평균 +1.88dB, VP8 FHD 평균 +1.92dB, CPU 변화 ±6% 이내
  • 최대 프레임 최대 4.8배 증가와 FHD level 4.0 실기기 호환 미검증

@finefinee

Copy link
Copy Markdown
Member Author

실기기 디코드 측정 (2026-10-16, Galaxy S25 SM-S931N · SM8750 · Android 16)

  • 입력: GPU 서버 운영 ffmpeg 5.1.9로 만든 fix: WebRTC 반환·RTMP 송출 인코더 화질 개선 #478 실측 인코딩 결과를 재인코딩 없이 MP4·WebM으로 감싼 300프레임, H.264 SPS level 변경 전 31·변경 후 FHD 40 확인
  • 방법: 임시 계측 테스트에서 MediaCodecList.findDecoderForFormat 디코더로 MediaCodec 디코드, 30fps 페이싱, 지연은 입력 투입부터 출력까지
  • 범위: 디코더 호환·디코드 비용만 확인, WebRTC 전송 경로의 패킷 손실·혼잡은 미검증
스트림 디코더 프레임 오류 지연 평균 지연 최대
H.264 FHD 4M·VBV 4M·L4.0 (후) c2.qti.avc.decoder HW 300 0 4.39 ms 13.19 ms
H.264 FHD 2M·VBV 200k·L3.1 (전) c2.qti.avc.decoder HW 300 0 4.34 ms 7.67 ms
H.264 720p 2M·VBV 2M (후) c2.qti.avc.decoder HW 300 0 3.70 ms 6.18 ms
H.264 720p 2M·VBV 200k (전) c2.qti.avc.decoder HW 300 0 3.76 ms 6.54 ms
VP8 FHD 4M (후) c2.android.vp8.decoder SW 300 0 17.47 ms 27.53 ms
VP8 FHD 2M (전) c2.android.vp8.decoder SW 300 0 15.14 ms 24.06 ms
VP8 720p 2M (변경 없음) c2.android.vp8.decoder SW 300 0 10.86 ms 16.39 ms
  • H.264 FHD level 4.0 스트림을 S25 하드웨어 디코더가 오류 없이 30fps 디코드, 협상 level 3.1과 무관하게 호환
  • H.264 변경 후 지연 평균 차이 0.1ms 이내, FHD 최대 지연 7.67에서 13.19ms로 증가했으나 프레임 간격 33ms 이내
  • S25 VP8 반환은 소프트웨어 디코더 사용, FHD 4M에서 평균 +2.3ms·최대 27.53ms로 프레임 간격에 근접
  • iOS 실기기와 실제 네트워크 손실은 미검증

@finefinee
finefinee marked this pull request as ready for review October 16, 2026 11:15
@finefinee
finefinee requested a review from a team as a code owner October 16, 2026 11:15
@finefinee
finefinee merged commit ba8c345 into main Oct 16, 2026
12 of 15 checks passed
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.

1 participant