裁剪,使用 ffmpeg 重新排列视频帧的中间

crop, rearrange middle of video frame with ffmpeg

我有几百个安全摄像头的视频文件。假设这是全帧:

+---------------------+-------------------------+
| 2018-10-10 03:02:12 |                         |
+---------------------+                         |
|                         +--------------+      |
|                         | IMPORTANT    |      |
|                         +--------------+      |
|                                               |
+-----------------------------------------------+

我有 2 个区域要保留:日期和内盒。 我知道如何裁剪它们中的任何一个,例如:

ffmpeg -i in.mp4 -filter:v "crop=1120:320:40:60" -c:a copy out.mpg

但是我想做的是重新排列框架以在输出中得到这个:

+---------------------+
| 2018-10-10 03:02:12 |
+------+--------------+
| X X X|  IMPORTANT   |
+------+--------------+

(X X X 只是黑色,或者如果这很难做到那么它可以是原始视频的任何部分) 知道我该怎么做吗?

您可以裁剪两个片段,然后将它们垂直堆叠。

ffmpeg -i in.mp4 -filter_complex "[0]split=2[tc][imp];[tc]crop=1120:320:40:60[tc];
                                  [imp]crop=800:400:1300:150,pad=1120:ih:1120-iw:0[imp];
                                  [tc][imp]vstack" -c:a copy out.mpg

垂直堆叠时,各段的宽度必须相同,因此会添加(黑色)填充。