如何更改输入视频的ffmpeg缓冲区
Posted
技术标签:
【中文标题】如何更改输入视频的ffmpeg缓冲区【英文标题】:how to change the ffmpeg buffer for input video 【发布时间】:2021-05-26 02:01:26 【问题描述】:如何更改这个仍然是 3M 的缓冲区
当前启动命令:
ffmpeg -f dshow -i video="screen-capture-recorder" -vcodec libx264 -preset:v ultrafast -filter:v "crop=480:270:0:0" -vf tpad=start_duration=30 -r 30 -g 60 -keyint_min 60 -sc_threshold 0 -b:v 1G -maxrate 2500k -bufsize 1G -rtbufsize 1G -sws_flags lanczos+accurate_rnd -acodec aac -b:a 96k -ar 48000 -ac 2 -f flv rtmp:// 127.0.0.1/live/test
对于我们的最终设置,我们希望在此流中添加 140 秒的延迟。
我们正在设置: -bufsize 1G -rtbufsize 1G -b:v 1G 将我们所有的缓冲区设置为 1G,但似乎它有一个不同的缓冲区,我似乎找不到设置为 3M 左右
【问题讨论】:
【参考方案1】:它是-rtbufsize
,但它应该应用于输入,因此它位于该输入之前。
因此,您的命令将以 ffmpeg -f dshow -rtbufsize 1G -i video="screen-capture-recorder"
开头
【讨论】:
这似乎有效,但它似乎在 1/2 秒内填满了该缓冲区和 2gig 缓冲区。我想这需要压缩才能工作吗? 您的输入是 2560x1440 32 位/像素,30 fps。即 420 MB/s。并且您希望在处理数据之前保留 30 秒的数据。你需要大量的内存。可能有办法将其缓存在磁盘上,但我必须对其进行测试。以上是关于如何更改输入视频的ffmpeg缓冲区的主要内容,如果未能解决你的问题,请参考以下文章