场景:
使用x264软编解码时,切换画面的时候会很卡,不切换画面的时候很流程
解决方案:
在推送RTMP时,每个消息应该为一个完整的vidoe帧,而不是单个slice。
但当一帧被划分为多个slice时,如果不将多个slice合成一帧数据进行发送,则导致接收端不能正常解码。
X264每帧slice的数量不只是受i_slice_count 参数影响,也受线程数量i_threads 影响。
// 指定处理线程,如果不为1,slice设置将失效
x->param.i_threads =1;
// 依赖i_threads的设置,否则此处设置一个slice将失效
x->param.i_slice_count =1;