FFmpeg命令全解析:三步完成视频合并、精准裁剪、英伟达显卡加速

一、裁剪

常规裁剪

根据时长裁剪,常规的裁剪
-c copy 表示直接复制流(不重新编码),速度极快,但要求切割时间必须是关键帧。否则裁剪下来的画面开头/结尾 会模糊花屏

ffmpeg -i input.mp4 -ss 00:00:30 -to 00:01:00 -c copy output.mp4

精确裁剪

(重新编码确保精度)

-c:v libx264 需要重新编码,时间上会比较耗时

ffmpeg -i input.mp4 -ss 00:00:30 -t 30 -c:v libx264 -c:a aac output.mp4

批量裁剪

遇到大量的精确裁剪,单个单个裁剪,明显比较耗时,需要更高效命令。对同一个源文件,裁剪出不同时间段的视频分段,耗时跟单个视频裁剪差不多,但不建议,一下搞太多,容易导致系统资源爆满 ,通常5~10个即可

ffmpeg -y -i source.mp4 -threads 10 -filter_complex 0:vtrim=start=0.00:end=6.42,setpts=PTS-STARTPTSv0;0:aatrim=start=0.00:end=6.42,asetpts=PTS-STARTPTSa0;0:vtrim=start=6.42:end=13.02,setpts=PTS-STARTPTSv1;0:aatrim=start=6.42:end=13.02,asetpts=PTS-STARTPTSa1;0:vtrim=start=13.02:end=14.05,setpts=PTS-STARTPTSv2;0:aatrim=start=13.02:end=14.05,asetpts=PTS-STARTPTSa2

-map v0 -map a0 -c:v libx264 -preset fast -c:a aac source_0_6420.ts -map v1 -map a1 -c:v libx264 -preset fast -c:a aac source_6420_13020.mp4 -map v2 -map a2 -c:v libx264 -preset fast -c:a aac source_13020_14050.mp4

显卡加速

在这基础上,还能继续提速,使用英伟达\AMD显卡继续加速

英伟达加速

-c:v libx264 换成 -c:v h264_nvenc

-preset fast 换成 -preset p6

再追加 -cq 26
ffmpeg -y -i source.mp4 -threads 10 -filter_complex 0:vtrim=start=0.00:end=6.42,setpts=PTS-STARTPTSv0;0:aatrim=start=0.00:end=6.42,asetpts=PTS-STARTPTSa0;0:vtrim=start=6.42:end=13.02,setpts=PTS-STARTPTSv1;0:aatrim=start=6.42:end=13.02,asetpts=PTS-STARTPTSa1;0:vtrim=start=13.02:end=14.05,setpts=PTS-STARTPTSv2;0:aatrim=start=13.02:end=14.05,asetpts=PTS-STARTPTSa2 -map v0 -map a0 -c:v h264_nvenc -preset p6 -cq 26 -c:a aac source_0_6420.ts -map v1 -map a1 -c:v h264_nvenc -preset p6 -cq 26 -c:a aac source_6420_13020.mp4 -map v2 -map a2 -c:v h264_nvenc -preset p6 -cq 26 -c:a aac source_13020_14050.mp4
AMD加速

-c:v libx264 换成 -c:v h264_amf

-preset fast 换成 -quality quality

再追加 -rc cqb
ffmpeg -y -i source.mp4 -threads 10 -filter_complex 0:vtrim=start=0.00:end=6.42,setpts=PTS-STARTPTSv0;0:aatrim=start=0.00:end=6.42,asetpts=PTS-STARTPTSa0;0:vtrim=start=6.42:end=13.02,setpts=PTS-STARTPTSv1;0:aatrim=start=6.42:end=13.02,asetpts=PTS-STARTPTSa1;0:vtrim=start=13.02:end=14.05,setpts=PTS-STARTPTSv2;0:aatrim=start=13.02:end=14.05,asetpts=PTS-STARTPTSa2 -map v0 -map a0 -c:v h264_nvenc -quality quality -rc cqb -c:a aac source_0_6420.ts -map v1 -map a1 -c:v h264_nvenc -quality quality -rc cqb -c:a aac source_6420_13020.mp4 -map v2 -map a2 -c:v h264_nvenc -quality quality -rc cqb -c:a aac source_13020_14050.mp4

二、合并

常规合并

简单视频合并命令,不大推荐使用

ffmpeg -i "concat:video1.mp4|video2.mp4|video3.mp4" -c copy output.mp4

批量合并

ffmpeg -y -i video1.mp4 -i video2.mp4 -filter_complex 0:v0:a1:v1:aconcat=n=2:v=1:a=1va -map v -map a -c:v libx264 -crf 23 -preset fast -threads 10 合并视频.mp4

显卡加速

英伟达

ffmpeg -y -i video1.mp4 -i video2.mp4 -filter_complex 0:v0:a1:v1:aconcat=n=2:v=1:a=1va -map v -map a -c:v h264_nvenc -preset p6 -cq 26 -threads 10 合并视频.mp4

AMD

ffmpeg -y -i video1.mp4 -i video2.mp4 -filter_complex 0:v0:a1:v1:aconcat=n=2:v=1:a=1va -map v -map a -c:v h264_amf -quality quality -rc cqb -threads 10 合并视频.mp4

相关推荐
闻缺陷则喜何志丹3 天前
【计算几何】Clipper的偏移
数学·偏移·计算几何·裁剪·clipper
程序员老陆5 天前
WHIP 与 WHEP:WebRTC 直播的标准化入口与出口
ffmpeg·音视频·webrtc·whip·whep
可乐鸡翅yeah_6 天前
混合内容 Mixed‑Content 安全策略,HLS HTTPS 页面加载 HTTP 资源排错实战
运维·ffmpeg·音视频·媒体·m3u8
刘广睿7 天前
视频导出为什么发灰?色彩空间与色彩范围(BT.601/709/2020)的 ffmpeg 转换实战
ffmpeg·音视频·视频处理·色彩空间·素材管理
yivifu7 天前
精选FFmpeg 实用音频视频转换命令集
ffmpeg·音视频转换
风哥2号11 天前
数据库教程FGMT02‑生产环境Linux+Oracle19c安装配置与项目实战
linux·数据库·ffmpeg
Bruce_Liuxiaowei11 天前
录屏片段无损合并:从 ffmpeg concat 原理到 Python 自动化脚本
python·ffmpeg·自动化
工具派13 天前
口播视频怎么自动剪掉冷场?视频静音删除的阈值实测
ffmpeg·音视频·视频
❀͜͡傀儡师13 天前
移动端 360° 商品展示方案:从 20MB 雪碧图到 800KB 丝滑视频
ffmpeg·webgl·sprite
深念Y13 天前
RX570_魔改矿卡显示故障完整排查记录
pve·amd·rx580·无头显卡·矿卡·魔改卡·vbios