參考鏈接文檔:
https://blog.csdn.net/tanningzhong/article/details/80578981
https://blog.csdn.net/qq_29350001/article/details/78271900
分層的關鍵:
openh264 中 temporal layer 的輸出順序與幀率
在 openh264 的內部,存在一張表,用來記錄每一層的輸出順序,可以在 encoder_data_tables.cpp 中找到內容如下:
解析如下:
iTemporalLayerNum 的值為 1 時,使用 uiGopSize = 1 的配置,即每一幀為一組,每一組的 uiTemporalId 值為 0
iTemporalLayerNum 的值為 2 時,使用 uiGopSize = 2 的配置,即每兩幀為一組,每一組中對應的uiTemporalId 為 [0, 1]
iTemporalLayerNum 的值為 3 時,使用 uiGopSize = 4 的配置,即每四幀為一組,每一組中對應的uiTemporalId 為 [0, 2, 1, 2]
iTemporalLayerNum 的值為 4 時,使用 uiGopSize = 8 的配置,即每 8 幀為一組,每一組中對應的uiTemporalId 為 [0, 3, 2, 3, 1, 3, 2, 3]
根據上述描述以及輸入的幀率可計算每一層的幀率是多少,例如在 30fps 下分兩層輸出,則 T0 幀率為 15fps;
分 3 層時,每 4 幀組則有完整 7 組,則 T0 的幀率有 7 + 1 = 8fps,T1 的幀率有 8 + 7 = 15fps,T2 則有 30fps;
分 4 層的情況可按相同的方法計算每一層的幀率。
————————————————
版權聲明:本文為CSDN博主「老衲不出家」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/tanningzhong/article/details/80578981