我正在使用C
MMPEG
来获取此消息。所以我在帖子中添加了time_base
videoStream = avformat_new_stream(formatContext, codec);
videoStream->time_base = AVRational{1, fps};
并在上下文中摆脱它
codecContext->bit_rate = 400000;
codecContext->width = width;
codecContext->height = height;
codecContext->gop_size = 10;
codecContext->max_b_frames = 1;
//codecContext->time_base = AVRational{1, fps};
codecContext->pix_fmt = AV_PIX_FMT_YUV420P;
avcodec_open2(codecContext, codec, NULL)
立即中断
为什么?我是否需要将值应用于它们?我对这两个值都重复了,消息也消失了。但这不是错误吗?
答案 0 :(得分:1)
设置codecContext->time_base
值是必需的,不应跳过。取消注释,你应该没事。另请参阅ffmpeg提供的code example。
至于为什么需要这两个值:AVStream
和AVCodecContext
是两种不同的结构,可能会也可能不会一起使用,具体取决于您的代码需要做什么。他们都需要一个time_base
所以他们都有它们。您可以将其称为ffmpeg代码库中的众多特性之一。