x264 前方几帧编码没数据,但整个文件是对的。为什么
x264 前面几帧编码没数据,但整个文件是对的。为什么?
我要编码前面几帧,发现数据全是0,但编码是成功的。请问是不是要设置什么参数?
------最佳解决方案--------------------
格式不是你订的吧,编解码会自己找包头的
------其他解决方案--------------------
ffmpeg是用了libx264.但是我发现默认参数。ffmpeg还比较快,不知道是不是进行了优化。
------其他解决方案--------------------
新版本x264 默认参数不是零延时输出
需要自己修改配置
查找一下代码中 zerolatency 相关的参数设置
在common.c是这样配置的
else if( !strncasecmp( s, "zerolatency", 11 ) )
{
param->rc.i_lookahead = 0;
param->i_sync_lookahead = 0;
param->i_bframe = 0;
param->b_sliced_threads = 1;
param->b_vfr_input = 0;
param->rc.b_mb_tree = 0;
}
然后你就会发现,编码输出就没有延时了,也没有B帧这些东西
我要编码前面几帧,发现数据全是0,但编码是成功的。请问是不是要设置什么参数?
------最佳解决方案--------------------
格式不是你订的吧,编解码会自己找包头的
------其他解决方案--------------------
ffmpeg是用了libx264.但是我发现默认参数。ffmpeg还比较快,不知道是不是进行了优化。
------其他解决方案--------------------
新版本x264 默认参数不是零延时输出
需要自己修改配置
查找一下代码中 zerolatency 相关的参数设置
在common.c是这样配置的
else if( !strncasecmp( s, "zerolatency", 11 ) )
{
param->rc.i_lookahead = 0;
param->i_sync_lookahead = 0;
param->i_bframe = 0;
param->b_sliced_threads = 1;
param->b_vfr_input = 0;
param->rc.b_mb_tree = 0;
}
然后你就会发现,编码输出就没有延时了,也没有B帧这些东西