gpt4 book ai didi

c - X264 : How to access NAL units from encoder?

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:04 25 4
gpt4 key购买 nike

当我打电话

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);
}
}

然后我明白了

Beginning of NAL file

我的问题是:

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?

最佳答案

1) 是的。 x264 自动包含。它是一个 SEI 切片,如果你愿意,你可以扔掉它。

2) 设置 i_slice_max_size = 1390

3) 查看 x264.h 中的 x264_param_t。这些设置是相当不言自明的。至于设置配置文件和预设调用 int x264_param_apply_profile( x264_param_t *, const char *profile )int x264_param_default_preset( x264_param_t *, const char *preset, const char *tune )

4) 是的,这是真的,我说那话的时候想撒谎。在线查看/在堆栈溢出上有一百万个关于编译 ffmpeg 的资源。事实上,如果您编译了带有 avcodec 支持的 x264,那么您的系统上已经有了它。

5) 是的!你应该成为一个优秀的 stack overflow 公民,并投票并接受那些捐赠空闲时间和知识(需要数年时间才能获得)来帮助你的人的回答。

关于c - X264 : How to access NAL units from encoder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23153760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com