相关疑难解决方法(0)

如何使用x264 C API将一系列图像编码为H264?

如何使用x264 C API将RBG图像编码为H264帧?我已经创建了一系列RBG图像,我现在如何将该序列转换为H264帧序列?特别是,如何将这个RGB图像序列编码为H264帧序列,该帧由单个初始H264关键帧后跟依赖H264帧组成?

c image h.264 x264

61
推荐指数
3
解决办法
5万
查看次数

ffmpeg libx264 AVCodecContext 设置

我正在使用最近的 Windows(2011 年 1 月)ffmpeg 构建并尝试以 H264 录制视频。使用以下设置可以很好地录制 MPEG4:

c->codec_id = CODEC_ID_MPEG4;
c->codec_type = AVMEDIA_TYPE_VIDEO;
c->width = VIDEO_WIDTH;
c->height = VIDEO_HEIGHT;
c->bit_rate = c->width * c->height * 4;
c->time_base.den = FRAME_RATE;
c->time_base.num = 1;
c->gop_size = 12;
c->pix_fmt = PIX_FMT_YUV420P;
Run Code Online (Sandbox Code Playgroud)

仅将 CODEC Id 更改为 H264 会导致 avcodec_open() 失败 (-1)。我找到了可能的设置列表如何使用 libavcodec/x264 编码 h.264?。我已经尝试过这些,没有设置 pix_fmt,avcodec_open() 仍然失败,但如果我另外设置 c->pix_fmt = PIX_FMT_YUV420P; 然后我得到除以零的异常。

然后我在这里看到了一些帖子,说我不应该设置任何内容(除了 code_id、codec_type、宽度、高度,也许还有 bit_rate 和 pix_fmt),因为库现在会自行选择最佳设置。我尝试了各种组合, avcode_open() 仍然失败。

有人对该怎么做或一些当前的设置有一些建议吗?

谢谢。

以下是一组 H264 设置,它们给出了我所描述的问题:

static AVStream* AddVideoStream(AVFormatContext *pOutputFmtCtx, 
int frameWidth, int frameHeight, …
Run Code Online (Sandbox Code Playgroud)

windows ffmpeg libavcodec libx264

5
推荐指数
1
解决办法
9333
查看次数

标签 统计

c ×1

ffmpeg ×1

h.264 ×1

image ×1

libavcodec ×1

libx264 ×1

windows ×1

x264 ×1