gpt4 book ai didi

c - FFMPEG 滤镜图 'warning, too many B-frames in a row'

转载 作者:行者123 更新时间:2023-11-28 21:43:04 32 4
gpt4 key购买 nike

<分区>

我正在尝试将两个视频与 FFmpeg 的滤镜一起附加。一个视频大小为 1920x1080 30fps,另一个视频大小为 1280x720 25fps。两者都使用 yuv420p,并且具有相同的像素密度。我目前忽略了音轨。以下是我的过滤图:

[video2]fifo[video3];
[video3]pad=width=1920:height=1080[video9];
[video9]fps=fps=25[video11];
[video11]setpts=expr=PTS-STARTPTS[video17];

[video6]fifo[video7];
[video7]pad=width=1920:height=1080[video13];
[video13]fps=fps=25[video15];
[video15]setpts=expr=PTS-STARTPTS[video19];

[video17][video19]concat=v=1:a=0:n=2[video21];
[video21]pad=width=1920:height=1080[video23];
[video23]fps=fps=25[video25];
[video25]format=pix_fmts=yuv420p[video27]

第一个链尝试将第一个视频转换为通用格式,对于 concat 过滤器,该格式从 0 开始。第二条链的作用与第一条相同。最后,第三条链将它们的视频连接在一起,并为生成的播放列表设置一些属性。

不幸的是,当我运行这个错误时,ffmpeg 重复输出:

[mpeg4 @ 0x7fc16a810600] warning, too many B-frames in a row

完成后,我看到第一个视频,填充到正确的分辨率和帧速率,但我看到的不是第二个视频,而是黑色。此外,整个视频有几天的长度,从第一个视频开始到几天的黑色结束。

我不明白为什么会出现此错误,因为我似乎将视频设置为具有相同的属性。我错过了什么?

此外,无论其值(value)如何,我使用的是 FFmpeg 的 C API 而不是命令行工具。我正在使用 libavformat/libavcodec/libavutil 对过滤器图进行编码/解码和 libavfilter。

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