📜  ffmpeg 将视频分割成块 (1)

📅  最后修改于: 2023-12-03 15:15:03.628000             🧑  作者: Mango

使用 FFmpeg 将视频分割成块

FFmpeg 是一个开源的跨平台音视频处理工具,可以用于处理音视频文件,比如转换格式、裁剪、合并等操作。其中,还可以使用 FFmpeg 将视频分割成块,将一个长视频分成多个小视频文件,方便后续的处理和管理。

1. 安装 FFmpeg

在使用 FFmpeg 进行视频处理之前,需要先安装 FFmpeg。FFmpeg 在 Windows、Linux、MacOS 等操作系统上都有可用的版本,可以根据自己的系统选择对应的安装包。

  • Windows:可以从 官网 下载 Windows 版本的 FFmpeg;也可以从 Zeranoe 网站下载经过预编译的 Windows 版本。
  • Linux:可以使用系统自带的包管理工具进行安装,如 apt-get、yum 等,也可以下载源代码编译安装。
  • MacOS:可以使用 Homebrew 进行安装,也可以从 官网 下载 MacOS 版本的 FFmpeg。

安装完成后,可以在命令行窗口中输入 ffmpeg -version 命令验证是否安装成功。

2. 分割视频

使用 FFmpeg 进行视频分割,需要用到 -ss-t-i-c:v copy 参数。

  • -ss:表示要从什么时间点开始分割视频,时间点可以用秒、毫秒、时间码等形式表示。
  • -t:表示要分割的时长,也可以用秒、毫秒、时间码等形式表示。
  • -i:表示要处理的视频文件路径。
  • -c:v copy:表示视频编码格式不变,只将视频流拷贝至输出文件中。

在命令行窗口中输入以下命令,可以将 video.mp4 这个视频文件从第 5 秒开始分割出时长为 10 秒的视频块,并输出至 output_1.mp4 文件中:

ffmpeg -ss 5 -t 10 -i video.mp4 -c:v copy output_1.mp4

如果要从 video.mp4 这个视频文件的第 20 秒开始分割出时长为 15 秒的视频块,并输出至 output_2.mp4 文件中,可以输入以下命令:

ffmpeg -ss 20 -t 15 -i video.mp4 -c:v copy output_2.mp4

输出文件的名称可以根据自己的需求进行命名,只需要保证文件格式正确即可。

3. 批量分割视频

如果需要同时分割多个视频文件,可以使用脚本批量处理。以下为 Linux 环境中的 Shell 脚本示例:

#!/bin/bash

src_dir="input/"   # 视频文件所在目录
out_dir="output/"  # 输出视频块所在目录

for file in "${src_dir}"/*.mp4; do
    name="${file##*/}"
    base="${name%.mp4}"
    ffmpeg -ss 5 -t 10 -i "${file}" -c:v copy "${out_dir}/${base}_1.mp4"
    ffmpeg -ss 20 -t 15 -i "${file}" -c:v copy "${out_dir}/${base}_2.mp4"
done

以上脚本将 input/ 目录下的所有 .mp4 格式视频文件分别从第 5 秒和第 20 秒开始分割出时长为 10 秒和 15 秒的视频块,并输出至 output/ 目录。输出文件的命名格式为 原文件名_1.mp4原文件名_2.mp4

4. 结语

使用 FFmpeg 将视频分割成块,可以方便地进行后续的处理和管理。通过本文介绍的方法,大家可以快速上手,并在实际应用中进行优化和扩展,提高工作效率。