在 ffmpeg 流上分屏和调整大小

Split screen and resize on ffmpeg streams

我想从 IP 摄像机获取 h264 流,调整它的大小,合并到网格,然后重新流式传输或保存到文件。我成功拆分流并保存,但我不知道如何调整流的大小。因为这个流很大,ffmpeg 达到 100% cpu,丢帧和崩溃。请告诉我如何在合并和保存之前调整此流的大小??感谢您的帮助和时间。

这是我的客户端

ffmpeg -rtsp_transport tcp -i "rtsp://admin:Pass@192.168.88.76:554/h264" -rtsp_transport tcp -i "rtsp://admin:Pass@192.168.88.76:554/h264" -filter_complex "[0:v][1:v]hstack" -c:v libx264 combo.avi

使用 scale filter with the hstack and vstack 过滤器。由于您所有的输入都是相同的大小,因此您可以像这样为 2x2 网格执行此操作:

"[0:v][1:v]hstack[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack,scale=iw/2:-2"

或者,您可以缩放(and/or 填充、裁剪等)每个输入,然后使用堆栈过滤器。如果您的输入大小不同,这很有用:

"[0:v]scale=1024:-1[v0];[1:v]scale=1024:-1[v1];[2:v]scale=1024:-1[v2];[3:v]scale=1024:-1[v3];[v0][v1]hstack[t];[v2][v3]hstack[b];[t][b]vstack"