使用FFMPEG将一个长视频分割为多个短视频
本帖最后由 小甲鱼的二师兄 于 2024-10-4 22:43 编辑使用FFMPEG将一个长视频分割为多个短视频
有时候,我们可能需要将一个比较长的视频,裁剪成多个短视频。
比如将一个时长为 1 小时的视频,拆分为两个 0.5 小时的视频,或者 10 个 6 分钟的视频。
虽然有些视频工具支持这个功能,但咱们主打一个杀鸡焉用牛刀,况且有时候还不顺手……
{:10_250:}
拆分成 2 个视频
这里,二师兄教大家使用 FFMEPG 来实现,只需要几个简单的指令即可。
假设输入视频文件名为 input.mp4:
# 提取前半小时
ffmpeg -i input.mp4 -t 1800 -c copy first_half.mp4
# 提取后半小时
ffmpeg -i input.mp4 -ss 1800 -c copy second_half.mp4
前半小时:
[*]-t 1800:指定持续时间为1800秒(30分钟)。
[*]-c copy:直接复制音视频流,不重新编码。
后半小时:
[*]-ss 1800:从1800秒(30分钟)处开始。
[*]-c copy:直接复制音视频流,不重新编码。
搞定~
{:10_335:}
拆分成多个短视频
要使用 FFMPEG 将一个长视频分割成多个短视频,可以使用 -segment_time 和 -f segment 参数。
假设你想将视频拆分为 6 分钟时长的小段,可以使用以下命令:
ffmpeg -i input.mp4 -c copy -map 0 -f segment -segment_time 360 -reset_timestamps 1 output%03d.mp4
[*]-i input.mp4:指定输入视频文件。
[*]-c copy:直接复制音视频流,不重新编码。
[*]-map 0:确保所有流都被复制。
[*]-f segment:使用分段模式。
[*]-segment_time 360:每个段的时长为 360 秒(6 分钟)。
[*]-reset_timestamps 1:重置每个分段的时间戳。
[*]output%03d.mp4:生成的输出文件名格式(如 output001.mp4、output002.mp4 等)。
搞定~
{:10_335:}
当然,ffmpeg 还提供了许多额外参数供你使用,这里是一些常用的参数:
[*]-i:指定输入文件。
[*]-t:指定输出的持续时间。
[*]-ss:指定开始时间。
[*]-c:v 和 -c:a:指定视频和音频的编解码器。
[*]-b:v 和 -b:a:指定视频和音频的比特率。
[*]-vf 和 -af:应用视频和音频过滤器。
[*]-r:设置帧率。
[*]-s:设置视频分辨率。
[*]-an:移除音频。
[*]-vn:移除视频。
哦,对了,不知道怎么安装 FFMEPG 的鱼油可以参考一下这篇文章 -> 使用FFMPEG将视频转换为GIF动图
页:
[1]