【7种使用FFmpeg分割视频的方法】【转载】

做视频媒体运营的朋友要分割视频有很多工具可以用,例如:剪映。如果要把视频分割做成批量任务或者需要很多自定义功能,那么FFmpeg是个不错的选择,FFmpeg是个命令行工具,也可以写程序调用,对技术人员来说使用起来比较灵活,对于非技术人员可能稍有点麻烦。下面介绍7种使用FFmpeg分割视频的方法。

01

将视频分割成帧

ffmpeg -i video.mp4 thumb%04d.jpg -hide_banner

此命令允许您从视频中提取特定帧,这些帧是组成视频的图像文件。例如视频以每秒24帧的速度运行,则意味着在视频播放时,每秒有24张图像显示在屏幕上。此命令可用于将视频分割为帧并提取单个帧。

02

按大小拆分视频

./split-video.sh huge-video.mov 64000000 "-c:v libx264 -crf 23 -c:a copy -vf scale=960:-1"

在命令中,数字64000000表示64MB,这意味着您的视频将被拆分为每个大小为64MB的块。您可以更改该数字以指定大小。

此命令允许您将较大的视频剪切为特定文件大小的较小视频。当您的视频很大,但只需要特定大小的特定部分用于上传或共享时,这个命令就很有用。其中split-video.sh是依赖于ffmpeg的shell脚本,脚本代码如下:

#!/bin/bash# Short script to split videos by filesize using ffmpeg by LukeLR
if [ $# -ne 3 ]; then    echo 'Illegal number of parameters. Needs 3 parameters:'    echo 'Usage:'    echo './split-video.sh FILE SIZELIMIT "FFMPEG_ARGS'    echo     echo 'Parameters:'    echo '    - FILE:        Name of the video file to split'    echo '    - SIZELIMIT:   Maximum file size of each part (in bytes)'    echo '    - FFMPEG_ARGS: Additional arguments to pass to each ffmpeg-call'    echo '                   (video format and quality options etc.)'    exit 1fi
FILE="$1"SIZELIMIT="$2"FFMPEG_ARGS="$3"
# Duration of the source videoDURATION=$(ffprobe -i "$FILE" -show_entries format=duration -v quiet -of default=noprint_wrappers=1:nokey=1|cut -d. -f1)
# Duration that has been encoded so farCUR_DURATION=0
# Filename of the source video (without extension)BASENAME="${FILE%.*}"
# Extension for the video parts#EXTENSION="${FILE##*.}"EXTENSION="
使用FFmpeg分割视频文件可以通过编写脚本完成。以下是一些基本步骤: 1. 安装FFmpeg 首先需要安装FFmpeg。可以从FFmpeg的官方网站 https://www.ffmpeg.org/ 下载适合自己系统的安装包进行安装。 2. 编写脚本 在安装好FFmpeg之后,可以开始编写脚本。下面是一个示例脚本,用于将一个视频文件分割成多个小的视频文件。 ``` #!/bin/bash # 定义变量 INPUT_VIDEO="input.mp4" OUTPUT_DIR="output" START_TIME="00:00:00" DURATION="00:05:00" FILE_NAME_PREFIX="video_" # 创建输出目录 mkdir -p $OUTPUT_DIR # 分割视频文件 ffmpeg -i $INPUT_VIDEO -ss $START_TIME -t $DURATION -c copy -map 0 $OUTPUT_DIR/$FILE_NAME_PREFIX%03d.mp4 ``` 在这个脚本中,需要定义一些变量。其中,`INPUT_VIDEO`是需要分割视频文件名;`OUTPUT_DIR`是分割视频文件保存的目录;`START_TIME`是分割视频的起始时间;`DURATION`是每个小视频文件的时长;`FILE_NAME_PREFIX`是每个小视频文件名的前缀。 然后,通过`mkdir`命令创建输出目录,最后使用FFmpeg命令进行视频文件的分割。其中,`-ss`参数表示从指定的时间点开始分割视频,`-t`参数表示每个小视频文件的时长,`-c copy`表示复制原视频文件的编码方式,`-map 0`表示保留原视频文件的所有流。 3. 运行脚本 在编写好脚本之后,可以通过命令行运行脚本。首先需要将脚本保存为一个文件,比如`split_video.sh`。然后,通过以下命令运行脚本: ``` bash split_video.sh ``` 运行脚本后,就可以看到视频文件被分割成了多个小的视频文件,并保存在指定的输出目录中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值