如何使用 libavcodec 强制将当前帧编码为帧内帧

     2023-03-13     49

关键词:

【中文标题】如何使用 libavcodec 强制将当前帧编码为帧内帧【英文标题】:How can i forcing current frame to be encoded as intra frame using libavcodec 【发布时间】:2021-07-09 04:59:52 【问题描述】:

我想改变 gop 动态以适应玩家。较小的 gop 有助于降低首屏成本; Big gop有助于降低比特率以节省带宽。

我发现nvenc有一个功能可以解决上面的问题。 https://docs.nvidia.com/video-technologies/video-codec-sdk/nvenc-video-encoder-api-prog-guide/#forcing-current-frame-to-be-encoded-as-intra-frame

但我使用的是 ffmpeg。 ffmpeg中有没有类似的功能?

【问题讨论】:

【参考方案1】:

如果AVFrame->pict_type 设置为AV_PICTURE_TYPE_I,则默认情况下,NVENC 编码器会将其编码为内帧。他们还有一个私人选项可以将其强制为 IDR 框架。

对于后者,在打开编码器之前添加。

av_opt_set(avctx->priv_data, "forced_idr", "1", 0);

【讨论】:

使用 libavcodec 将音频编码为 aac

】使用libavcodec将音频编码为aac【英文标题】:Encodeaudiotoaacwithlibavcodec【发布时间】:2011-01-2512:15:49【问题描述】:我正在使用libavcodec(截至2010年3月3日的最新git)将原始pcm编码为aac(启用libfaac支持)。我通过调用avcodec_encode_aud... 查看详情

使用ffmpeg libavcodec将视频流编码为H264,为啥持续时间为零

】使用ffmpeglibavcodec将视频流编码为H264,为啥持续时间为零【英文标题】:usingffmpeglibavcodecencodevideostreamtoH264,whydurationiszero使用ffmpeglibavcodec将视频流编码为H264,为什么持续时间为零【发布时间】:2018-02-1008:14:14【问题描述】:需... 查看详情

使用 libavcodec 编码 h264 时如何限制 CPU 使用率?

】使用libavcodec编码h264时如何限制CPU使用率?【英文标题】:HowcanIlimittheCPUusagewhenencodingh264withlibavcodec?【发布时间】:2021-10-2605:40:34【问题描述】:我将原始图像编码为h264视频,并在调用avocdec_open2()之前像这样设置我的编码器参... 查看详情

如何将音频帧从输入 .mp4 传递到 libavcodec 中的输出 .mp4?

】如何将音频帧从输入.mp4传递到libavcodec中的输出.mp4?【英文标题】:HowcanIpassaudioframesfromaninput.mp4toanoutput.mp4inlibavcodec?【发布时间】:2021-08-1008:13:01【问题描述】:我有一个项目可以正确打开.mp4、提取视频帧、修改它们,然后... 查看详情

如何使用 libavcodec/x264 对 h.264 进行编码?

】如何使用libavcodec/x264对h.264进行编码?【英文标题】:Howtoencodeh.264withlibavcodec/x264?【发布时间】:2011-04-0222:52:03【问题描述】:我正在尝试使用libavcodec/libavformat对视频进行编码。音频效果很好,但是当我尝试对视频进行编码时... 查看详情

如何设置 CSS 动画的当前帧(或类似帧)? [复制]

】如何设置CSS动画的当前帧(或类似帧)?[复制]【英文标题】:HowdoIsetthecurrentframe(orsimilar)ofaCSSanimation?[duplicate]【发布时间】:2017-01-1208:00:05【问题描述】:我有一个CSS关键帧动画,它本身很普通。但是,我希望能够强制动画... 查看详情

如何使用 FFmpeg 将灰度视频流编码为 MPEG-1?

】如何使用FFmpeg将灰度视频流编码为MPEG-1?【英文标题】:HowtoencodegrayscalevideostreamstoMPEG-1withFFmpeg?【发布时间】:2012-01-1101:41:43【问题描述】:我有一个来自Firewire天文相机的灰度视频流,我想使用FFmpeg压缩视频流,但它不接受M... 查看详情

如何强制 NASM 将 int3 编码为 0xCC

】如何强制NASM将int3编码为0xCC【英文标题】:HowtoforceNASMtoencodeint3as0xCC【发布时间】:2018-03-1207:12:22【问题描述】:我正在尝试使用NASM组装以下代码section.textglobal_start_start:moveax,1int3Objdump-D产生:test:fileformatelf64-x86-64Disassemblyofsect... 查看详情

如何强制ffmpeg编码时输出一个关键帧

如何强制ffmpeg编码时输出一个关键帧AVCodecContext*c//编码器环境句柄AVFrame*f//需要编码的一帧视频在编码前设置f->pict_type=FF_I_TYPE;f->key_frame=1;然后编码*outsize=avcodec_encode_video(c,temp,outbuf_size,f);则编码之后通过如下参数判断是否为... 查看详情

如何使用ffmpeg gpu编码将视频帧保存到内存中?

】如何使用ffmpeggpu编码将视频帧保存到内存中?【英文标题】:Howtosaveframestomemoryfromvideowithffmpeggpuencoding?【发布时间】:2021-09-1216:49:24【问题描述】:我正在尝试从视频中提取帧并将它们保存到内存(内存)。使用CPU编码,我没... 查看详情

如何将编码器作为参数传递给数据帧的 as 方法

】如何将编码器作为参数传递给数据帧的as方法【英文标题】:HowtopassEncoderasparametertodataframe\'sasmethod【发布时间】:2016-11-1912:08:37【问题描述】:我想通过使用不同的案例类将dataFrame转换为dataSet。现在,我的代码如下所示。caseC... 查看详情

如何将超过 65536 字节的二进制数据编码为 c++ 上的 websocket 帧

】如何将超过65536字节的二进制数据编码为c++上的websocket帧【英文标题】:Howtoencodebinarydataover65536bytestowebsocketframeonc++【发布时间】:2017-05-0107:31:39【问题描述】:我的服务器在std::string缓冲区(ANSI)中保存jpeg文件。我需要根据要... 查看详情

ffmpeg

...为流的开源计算机程序。它包括了领先的音/视频编码库libavcodec等。  libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;  libavcodec:用于各种类型声音/... 查看详情

如何使用光流图像将后一帧扭曲到前一帧

】如何使用光流图像将后一帧扭曲到前一帧【英文标题】:Howtowarpthelaterframetopreviousframeusingopticalflowimage【发布时间】:2017-05-1807:21:24【问题描述】:我只有两张图片,一张是当前帧,一张是其他方式计算出来的光流图。当前帧... 查看详情

ffmpeg如何从url获取视频帧数据

...处理音视频编码及解码。编码层由各种丰富的编解码器(libavcodec库及第三方编解码库(如libx264))提供支持。原始数据层:处理未编码的原始音视频帧。原始数据层由各种丰富的音视频滤镜(libavfilter库)提供支持这遍文章目针对对ffmpe... 查看详情

强制 XDocument 使用 UTF-8 编码写入字符串

】强制XDocument使用UTF-8编码写入字符串【英文标题】:ForceXDocumenttowritetoStringwithUTF-8encoding【发布时间】:2011-04-2118:24:32【问题描述】:我希望能够使用声明和UTF-8编码将XML写入字符串。这似乎很难完成。我已经阅读了一些内容并... 查看详情

如何使用 R 中的条件语句将数据帧拆分为多个数据帧

】如何使用R中的条件语句将数据帧拆分为多个数据帧【英文标题】:howtosplitadataframeintomultipledataframesusingaconditionalstatementinR【发布时间】:2014-01-2520:29:07【问题描述】:我的数据如下所示:time<-c(1:20)temp<-c(2,3,4,5,6,2,3,4,5,6,2,3,... 查看详情

使用 Scikit-learn 和 Pandas 将编码列连接到原始数据帧

】使用Scikit-learn和Pandas将编码列连接到原始数据帧【英文标题】:ConcatenateencodedcolumnstooriginaldataframeusingScikit-learnandPandas【发布时间】:2018-07-2902:57:22【问题描述】:我正在尝试使用Python的Scikit-learn将.csv文件中的所有文本数据编... 查看详情