webrtc中的程式碼:
cfg_.rc_dropframe_thresh = (!disable_frame_dropping_ && encoder_settings_.GetFrameDropEnabled()) ? 30 : 0;
https://chromium.googlesource.com/webm/libvpx/+/master/vpx/vpx_encoder.h#399
引數定義
- 引數名稱:
rc_dropframe_thresh
- 資料型別:
unsigned int
- 所屬結構體:
vpx_codec_enc_cfg
功能描述
rc_dropframe_thresh
是一個用於控制時間重取樣(temporal resampling)的引數。如果編碼器支援,該引數允許編碼器透過丟棄幀(drop frames)來達到目標資料率(target data rate)。這種策略可能會導致編碼影片中出現時間上的不連續性,播放時可能會出現卡頓。這種折衷在某些應用中是可以接受的,但在許多應用中是不被允許的。在這些情況下,可以禁用該功能。
引數具體作用
- 丟幀機制:當目標資料緩衝區(target data buffer)的滿度低於該閾值所描述的百分比時,編碼器將丟棄幀。
- 禁用丟幀:將該閾值設定為
0
可以禁用丟幀功能。
使用場景
- 啟用丟幀:在需要嚴格控制資料率並且可以接受播放時卡頓的情況下,可以啟用丟幀機制,透過設定適當的閾值來允許丟幀。
- 禁用丟幀:在要求影片播放流暢、不出現卡頓的應用場景中,可以將閾值設定為
0
,以禁用丟幀功能。
注意事項
- 支援的編碼器:所有 vpx VPx 編碼器(如 VP8、VP9)都支援該功能。
- 其他編碼器:對於其他編碼器,需查閱相關文件以確定是否支援該功能。
透過合理配置 rc_dropframe_thresh
,可以在影片質量和資料率控制之間找到平衡,以適應不同的應用需求。