Dragon
VPS云服务器分享VPS云服务器分享  2022-11-17 17:18 三条八主机 隐藏边栏 |   抢沙发  2,248 
文章评分 2 次,平均分 3.0

用ffmpeg的-segment_times等参数进行关键帧无损视频分割切片

可以去掉-ss,-t,-to参数!命令方便操作使用ffmpeng快速切片

ffmpeg扔掉效果并不理想的“-ss”、“-t”、“-to”参数(有损切片重新编码才会用到的)吧!

本来是在找无损视频剪切软件,小伙伴们有推荐了MediaMux(https://github.com/rxaa/MediaMux),试用后发现是效果最好的(在分割又重新合并后完美还原了)。

看了下代码,发现MediaMux用的相关ffmpeg命令参数并不是“-ss”、“-t”、“-to”参数,而是“-segment_times”等参数。

给大家演示一下用于ffmpeg 无损切割命令

然后我就把代码提取出来,发现ffmpeg v3.0也能运行,意味着WinXP系统也能无损视频分割了。

ffmpeg下载及使用

ffmpeg最新版下载页:
http://ffmpeg.org/download.html
https://www.videohelp.com/software/ffmpeg

ffmpeg v4.3.1 32bit(32位的Win7、Win10可以使用,当然也支持64位系统):
https://www.videohelp.com/download/ffmpeg-4.3.1-win32-static.zip

ffmpeg v3.0(支持WinXP系统)下载:
https://www.videohelp.com/download/ffmpeg-3.0-win32-static.7z

 

FFmpeg视频剪辑常用命令

常见命令:视频局部裁剪

-i input.mp4 -b:v 2048k -vf crop=828:462:0:665 -ss 22.30 -t 8.80 output.mp4

视频倒放:

-i input.mp4 -b:v 2048k -vf reverse output.mp4

视频翻转:

-i input.mp4 -b:v 2048k -vf hflip output.mp4

视频插入图片:

-i input.mp4 -b:v 2048k -strict -2 -vf "movie=myimage.png,scale=550:231,lut=a=val*1.0[mask0];[in][mask0] overlay=140:106:enable='between (t,0.0,8.8)'[out]" output.mp4

命令对比参考:

-i input.mp4 -b:v 2048k -strict -2 -vf “movie=图片名.png,scale=图片宽度:图片高度,lut=a=val*透明度[mask0];[in][mask0] overlay=图片X坐标:图片Y坐标:enable=‘between (t,图片显示的开始时间,图片显示的持续时长)’[out]” output.mp4

视频倍速:

-i input.mp4 -b:v 2048k -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2[a]" -map "[v]" -map "[a]" output.mp4

主要参数说明:设 rate 表示倍速, rate = 2.0; 则  setpts = 1.0/rate;  atempo = rate/1.0;

视频制作调色板(用于提高GIF清晰度):

-i input.mp4 -b 2048k -r 10 -vf fps=15,scale=414:-1:flags=lanczos,palettegen -y 调色板.png

操作视频转GIF:

-i input.mp4 -i 调色板.png -r 10 -lavfi "fps=15,scale=414:-1:flags=lanczos[x];[x][1:v]paletteuse" -y output.gif

多张图片+音频转视频:

-threads 2 -y -r 60 -i input.mp3 -f image2 -framerate 5 -i imageGroupPath/image_%%d.png -t 8 -b:v 2048k output.mp4

主要参数说明:

-framerate 5 设置帧率为5;
imageGroupPath/image_%%d.png 自动读取imageGroupPath文件夹中,以image_1.png、image_2.png、image_3.png以此类推的所有图片;

视频+音频合成新视频:

-i input.mp3 -i input.mp4 -t 15 -b:v 2048k -y output.mp4

FFmpeg命令详解

  • -b:v 2048k:视频比特率2048 kbit/s,这是影响清晰度的参数之一
  • crop=828:462:0:665:局部裁剪,格式为crop=width:height:X:Y
  • -ss 5 -t 8.8:需要编辑的开始时间为第5秒,时长8.8秒
  • hflip:hflip表示水平翻转,vflip表示垂直翻转,reverse表示倒放
  • scale=414:-1:缩放,格式为scale=宽:高,-1默认为自动
  • -r 24:将输出文件的帧速率强制为 24 fps

 

关键帧无损视频分割剪切---可以手动选择每个分割的时间点

操作命令如下

ffmpeg.exe -i "In.mp4" -f segment -segment_times 00:00:06.165,00:00:14.293 -c copy -map 0 "Out_%%02d.mp4"

“In.mp4”是导入的视频文件名;
分割时间点“00:00:06.165”代表0小时0分6.165秒,“00:00:14.293”代表0小时0分14.293秒,由于用到了关键帧,实际结果有点出入;
多个-segment_times时间点之间用英文逗号“,”隔开;
最终会生成“Out_00.mp4”、“Out_01.mp4”、“Out_02.mp4”等视频文件(上面的两个分割时间点最终会生成3个视频文件)。

关键帧无损视频分割剪切--可以每隔多久相同时间点进行分割

操作命令如下

ffmpeg.exe -i "In.mp4" -f segment -segment_time 00:00:05.000 -c copy -map 0 "Out_%%02d.mp4"

仅一个-segment_time时间点,本例为每5秒分割一次(由于用到了关键帧,实际结果有点出入),最终会生成“Out_00.mp4”、“Out_01.mp4”等视频文件。

关于FFmpeg无损视频合并

先在视频所在路径下创建一个文本文件“list.txt”,内容如下(根据需要修改文件名,但必须是相同后缀名[比如01.ts和02.mp4就无法完成无损合并]):

file '00.mp4'
file '01.mp4'
file '02.mp4'

然后在同一个位置运行下面一行批处理命令:

ffmpeg.exe -f concat -i "list.txt" -c copy "Out.mp4"
FFmpeg使用方法: ffmpeg剪切视频无损精准剪切以及 ffmpeg切片常用命令-BG
FFmpeg使用方法: ffmpeg剪切视频无损精准剪切以及 ffmpeg切片常用命令

FFmpeg使用方法: ffmpeg剪切视频无损精准剪切以及 ffmpeg切片常用命令

什么是FFmpeg FFmpeg 是一个开放源代码的自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及l...
FFmpeg视频处理软件 (好用的切片工具)-BG
FFmpeg视频处理软件 (好用的切片工具)

FFmpeg视频处理软件 (好用的切片工具)

FFmpeg安装下载 首先自己去官网下载需要的FFmpeg版本 ,官网地址:http://ffmpeg.org 视频切片m3u8工具 使用说明: 1.加载ffmpeg.exe所在目录 2.然...

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

VPS云服务器分享
VPS云服务器分享 关注:0    粉丝:1 最后编辑于:2022-11-21
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享