|
|
本帖最后由 yanl 于 2026-4-10 20:20 编辑
lada和jasna使用一段时间了,但一直苦恼不能自由控制输出文件的大小,一开始会了设置cq值,可是要等处理完了才知道多大,而且部分视频出来大小会不一样。最近通过大量测试,学会了设置最大码率控制目标文件大小。
jasna单独设置maxbitrate不起作用,以为是代码写死了,折腾了一天去编译源码,编译完了运行发现还是有问题,于是让trae分析源码找原因,才知道要同时设置vbvbufsize和vbvinit
Lada:
编码器选择:hevc_nvenc(NVIDIA NVENC hevc encoder)[Nvidia CUDA]
编码参数:
4K视频:-rc vbr -cq 24 -maxrate 13M -preset p7 -tune hq -profile main10 -highbitdepth 1 -rc-lookahead 32 -spatial-aq 1 -aq-strength 6 -bf 3 -b_ref_mode middle
1080P视频:-rc vbr -cq 24 -maxrate 3.5M -preset p7 -tune hq -profile main10 -highbitdepth 1 -rc-lookahead 32 -spatial-aq 1 -aq-strength 6 -bf 3 -b_ref_mode middle
主要修改maxrate值,15M表示15000kbps
cq值建议23-26,之前一直用cq 26,不设置maxrate也可以达到目标,只是少量视频会失控
目标码率参考:以H.265比H.264节省40%体积为基准,6000kbps的1080p原片,目标码率3500kbps,23000kbps的4k原片,目标码率13000kbps
参考官方文件:lada-v0.11.0_windows_nvidia\lada\_internal\lada\utils\encoding_presets.csv
jasna:
编码参数:preset=P7,maxbitrate=3500,vbvbufsize=7000,vbvinit=3500
参数说明:
preset源码写的是P5,建议P7,编码速度降低完全可以接受,对整体处理速度影响不大
- vbvbufsize :VBV 缓冲区大小,设置为 maxbitrate 的 2 倍(2倍会允许短时间的画质爆发,最终文件可能会超过maxrate值,严格控制大小可以设置为maxrate的1倍)
- vbvinit :VBV 初始缓冲区填充,通常设置为 maxbitrate 的值
P必须大写,maxbitrate单位是kbps,必须同时设置vbvbufsize和vbvinit,maxbitrate才能生效
相关代码和讨论参考:https://github.com/Kruk2/jasna/issues/81
|
|