📅  最后修改于: 2023-12-03 15:36:27.775000             🧑  作者: Mango
当需要把一个大视频文件分割成多个 smaller chunks 时,可以使用 ffmpeg 进行分割。ffmpeg 可以在音视频处理的领域中发挥重要的作用,同时也是 Shell/Bash 编程语言中不可或缺的工具。
FFmpeg 是一组开源的音频和视频处理库。它支持包括 MOV、AVI、MP4 和 FLV 在内的各种视频格式。使用 FFmpeg,可以进行音视频转码、转封装、音视频裁剪、合并等操作。
在本文中,我们将使用 FFmpeg 的命令行工具进行视频分割。
为了使用 ffmpeg 进行视频分割,需要在本地系统安装 FFmpeg。可参考以下步骤进行安装:
sudo apt update
sudo apt install ffmpeg
brew update
brew install ffmpeg
下面以将 big_video.mp4
文件分割成每个 1GB
的 smaller chunks 为例进行介绍。
ffmpeg -i <input_file> -c copy -map 0 -segment_time <segment_time> -f segment <output_file_prefix>_<segment_number>.<output_file_extension>
该命令行将输入文件输入到容器中以提取出所有帧,并将每个片段的持续时间指定为 <segment_time>
,并将每个片段保存到文件系统上的文件中,文件名包括 <output_file_prefix>
,数字和文件扩展名 <output_file_extension>
,例如:out_001.mp4
。
其中:
<input_file>
:要分割的视频文件名;<output_file_prefix>
:输出文件名的前缀;<output_file_extension>
:输出文件名的扩展名;<segment_time>
:每个小分片的时长。假设我们的大视频文件为 big_video.mp4
,这个文件太大了,我们需要把它分割成若干小文件。以下是我们将视频文件分割成每个为 1GB
的小文件的指令:
ffmpeg -i big_video.mp4 -c copy -map 0 -segment_time 01:00:00 -f segment big_video_part_%03d.mp4
命令解析:
-i big_video.mp4
:表示需要被分割的视频文件;-c copy
:将不需要重新编码,直接从原始视频文件复制给新的分割视频文件;-map 0
:将原始文件中的所有源流映射到输出文件;-segment_time 01:00:00
:每个小分片的时长为 1
个小时,也可以使用秒作为单位,如 -segment_time 3600
;-f segment
:分割输入文件并输出到文件系统中;big_video_part_%03d.mp4
:表示输出文件的命名格式, %03d
表示输出文件名的三位数字编号。当完成命令行操作后,将会在同一目录下看到 big_video_part_001.mp4
, big_video_part_002.mp4
, ...等分割出来的视频文件。
本文向大家介绍了如何使用 ffmpeg 按大小分割大视频文件。FFmpeg 可以进行音视频处理,分割视频文件只是它多项工具的其中一项。本文提供了在 Ubuntu 和 macOS 上安装 FFmpeg 的步骤以及详细的视频分割工具使用方法。