使用 ffmpeg 在多个点剪切视频

使用 ffmpeg 在多个点剪切视频

我有一个足球比赛的视频。我想剪辑一下时间before the gameduring half time最后结束比赛。

剪辑总长度1h 51m111m

理想的剪辑和时间如下:

+------------+-------------+---------------------+
| Start Time | Finish Time |    Clip Duration    |
+------------+-------------+---------------------+
| 1:30       |   47:30     |  47:30              |
| 53:00      |   100:00    |  47                 |
+------------+-------------+---------------------+

但我的视频结束于

ffmpeg -ss 00:01:30 -i Tripod_Camera.mp4 -t 00:47:30 -ss 00:53:00 -t 00:47:00 -c copy VideoClip.mp4

答案1

  1. 制作input.txt包含要剪切的时间戳(以秒为单位):

    file 'input.mp4'
    inpoint 90
    outpoint 2850
    file 'input.mp4'
    inpoint 3180
    outpoint 6000
    
  2. 跑步ffmpeg以连接连接解复用器

    ffmpeg -f concat -i input.txt -c copy output.mp4
    
  • 这会流复制,因此无需重新编码,这意味着整个过程将很快,质量也将得到保留。但是,关键帧上会进行剪切,因此可能不够准确。如果需要更高的准确度,您将不得不使用更慢的方法,例如使用 (a)trim、(a)setpts 和 concat 过滤器,这需要重新编码。

  • 如果你遇到 A/V 不同步的情况获取关键帧的时间戳,使用关键帧时间戳作为您的,但在每个时间戳中inpoint添加 0.001 。inpointinput.txt

答案2

使用视频剪辑我就是为此编写的。由于它有自己的多路复用器,因此它比 ffmpeg 更精确,并为您提供图形界面。

由于它基于 ffmpeg(或其库),因此剪辑是无损的。 在此处输入图片描述

相关内容