视频编辑应用程序的一个常见功能是剪切/修剪视频。在编辑视频时,您可能想剪切掉某些部分,或者想通过剪切不同来源的部分来拼接不同的视频,并将它们串联成一个视频。
我们将了解如何使用 FFmpeg 来实现这一目的,FFmpeg 是一款命令行工具,可用于创建、编辑和处理不同类型的媒体。我们将学习一些 FFmpeg 命令,用它们将视频修剪成不同的部分,然后看看如何将不同的视频串联成一个视频。
![图片[1]-FFmpeg 高级技巧-深入解析视频修剪与精细编辑](https://upai.000blog.com/wp-content/uploads/2024/07/202407301012.jpg)
使用 FFmpeg 剪切/修剪视频
FFmpeg 提供了不同的命令,您可以用它们来分割视频。我们将介绍如何使用寻路参数,但您也可以使用其他命令,如修剪过滤器。
要剪切视频的特定部分,可以使用寻路选项来找到要剪切的特定部分。让我们来看几个例子。
使用持续时间剪切
|
1
|
$ ffmpeg –i input.mp4 –ss 00:05:20 –t 00:10:00 –c:v copy –c:a copy output1.mp4
|
- 上述命令将接收输入视频,并从中剪切出 10 分钟(从 5 分 20 秒开始),即输出视频将从 input.mp4 00:05:20 00:05:20 00:15:20 开始。
- -ss 指定起始位置,并指定从起始位置开始的持续时间。在上述命令中,我们从标记处剪切了 10 分钟。
- 这些命令会复制原始音频和视频,而无需重新编码。-c:v copy -c:a copy
- 要指定时间,您可以使用两种不同的时间单位格式:六十进制 (,例如 ) 或秒。如果使用前者,则可以省略毫秒,就像在示例中所做的那样。HOURS:MM:SS.MILLISECONDS 01:23:45.678 HOURS:MM:SS
如果您指定的持续时间会导致停止时间超出输入视频的长度,那么输出视频将在输入视频结束的地方结束。
使用特定时间剪切
|
1
|
$ ffmpeg –i input.mp4 –ss 00:05:10 –to 00:15:30 –c:v copy –c:a copy output2.mp4
|
上述命令用于指定从起始位置剪切到的准确时间。剪切后的视频将从 至 ,形成一段 10 分 20 秒的视频。
如果您指定的时间长于输入视频的时间,例如输入视频长达 20 分钟,则剪切视频将在输入视频结束的地方结束。如果指定的时间小于 ,则命令无法运行。您将收到以下错误信息:-to-to 00:35:00-to-ssError: -to value smaller than -ss; aborting.
请注意,如果您在 ,之前指定 ,将与 ,具有相同的效果,即它将充当持续时间。
|
1
2 |
$ ffmpeg –ss 00:05:20 –i input.mp4 –t 00:10:00 –c:v copy –c:a copy output3.mp4
$ ffmpeg –ss 00:05:20 –i input.mp4 –to 00:10:00 –c:v copy –c:a copy output4.mp4 |
上述命令的结果都是 10 分钟长的视频,这些视频来自于输入视频。
在使用寻道时,你可能会注意到有时输出文件的长度可能与你期望的不完全相同,可能会有几秒钟的偏差。对于大多数视频格式来说,不可能精确寻道。FFmpeg 会在您指定的位置前寻找最接近的搜索点。通过启用视频转码功能可以提高精确度。启用此功能后,搜索点和指定位置之间的额外片段将被解码并丢弃。使用时,它将被保留。
剪切视频结尾
寻道命令还有一个变体,可以用来剪切视频的最后几秒钟。它使用负值表示相对于 EOF(文件结束)的位置。位置位于 EOF.-sseofN0
seek 命令还有另一种变体,您可以使用它来剪切视频的最后几秒钟。它使用负值来指示相对于 EOF(文件末尾)的位置。职位在EOF。-sseofN0
|
1
2 |
$ ffmpeg –sseof –600 –i input.mp4 –c copy output5.mp4
$ ffmpeg –sseof –00:10:00 –i input.mp4 –c copy output6.mp4 |
上述两个命令都将剪切输入视频的最后 10 分钟。
如果您使用的时间长于输入视频,例如 对于 20 分钟的视频,该命令仍将运行。输出视频的长度将与输入视频的长度相同。
|
1
|
-01:10:00
|
通过重新编码进行剪切
当您在修剪视频时省略该选项时,FFmpeg 将根据您选择的格式自动重新编码输出视频和音频。与我们之前查看的命令相比,该操作将需要更长的时间才能完成,但会提供更精确的结果。-c copy
|
1
|
$ ffmpeg –ss 00:05:20 –accurate_seek –i input.mp4 –t 00:10:00 –c:v libx264 –c:a aac output7.mp4
|
在上面的命令中,我们在剪切视频时重新编码音频和视频,我们还使用标志,这将使输出视频的长度更准确。
|
1
|
-accurate_seek
|




没有回复内容