Когда я звоню
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? Это правда? Если да, то как мне собрать libswscale для статической библиотеки x264?