不建议使用AVStream.codec.time_base作为muxer的时基提示。改为设置AVStream.time_base

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不建议使用AVStream.codec.time_base作为muxer的时基提示。改为设置AVStream.time_base相关的知识,希望对你有一定的参考价值。

我正在使用CMMPEG API并收到此消息。所以我添加了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)立即休息

为什么?我是否需要将值应用于它们?我重复了两个值,消息也消失了。但这不是错吗?

答案

设置codecContext->time_base值是强制性的,不应跳过。取消注释,你应该没事。另请参阅ffmpeg提供的code example

至于为什么需要两个值:AVStreamAVCodecContext是两种不同的结构,可能会也可能不会一起使用,具体取决于您的代码需要做什么。他们都需要一个time_base所以他们都有它们。您可以将其称为ffmpeg代码库中的众多特性之一。

以上是关于不建议使用AVStream.codec.time_base作为muxer的时基提示。改为设置AVStream.time_base的主要内容,如果未能解决你的问题,请参考以下文章

转载--编写高质量代码:改善Java程序的151个建议(第4章:字符串___建议52~55)

编写高质量代码:改善Java程序的151个建议(第4章:字符串___建议52~55)

编写高质量代码:改善Java程序的151个建议(第8章:异常___建议110~113)

转载---编写高质量代码:改善Java程序的151个建议(第2章:基本类型___建议26~30)

转载--编写高质量代码:改善Java程序的151个建议(第3章:类对象及方法___建议41~46)

转载---编写高质量代码:改善Java程序的151个建议(第3章:类对象及方法___建议41~46)