当我打电话
frame_size = x264_encoder_encode(encoder, &nals, &i_nals, &pic_in, &pic_out);
然后将每个 NAL 写入如下文件:
if (frame_size >= 0)
{
int i;
int j;
for (i = 0; i < i_nals; i++)
{
printf("******************* NAL %d (%d bytes) *******************\n", i, nals[i].i_payload);
fwrite(&(nals[i].p_payload[0]), 1, nals[i].i_payload, fid);
}
}
然后我明白了
我的问题是:
1)文件开头有可读参数是否正常?
2)我如何配置 X264 编码器,以便编码器返回我可以通过 UDP 发送的帧,而数据包不会被分段(大小必须低于 1390 或附近)。
3) 使用 x264.exe 我传入以下选项:
"--threads 1 --profile baseline --level 3.2 --preset ultrafast --bframes 0 --force-cfr --no-mbtree --sync-lookahead 0 --rc-lookahead 0 --keyint 1000 --intra-refresh"
如何将这些映射到 X264 参数结构中的设置?(x264_param_t)
4) 我被告知 x264 静态库不支持位图输入到编码器,我必须使用 libswscale 将 24 位 RGB 输入位图转换为 YUV2。编码器,据说只接受 YUV2 作为输入?这是真的?如果是这样,我如何为 x264 静态库构建 libswscale?