使用ffmpeg截取视频片段

本文将介绍2中使用ffmpeg截取视频的方法

  1. 指定截取视频的 开始时间结束时间,进行视频截取
  2. 指定截取视频的 开始时间截取的秒数,进行视频截取

两种截取方式的命令行如下

截取某一时间段视频

优先使用

shell 复制代码
ffmpeg -i ./input.mp4 -c:v libx264 -crf 18 -ss 00:00:10 -to 00:00:15 ./cut_out.mp4

或下面这种(不推荐使用)

shell 复制代码
ffmpeg -i ./input.mp4 -c:v copy -c:a copy -ss 00:00:10 -to 00:00:15 ./cut_out.mp4

字段说明

复制代码
-i ./input.mp4  指定输入视频路径
-ss 00:00:10  指定截取视频的开始时间点
-to 00:00:15  指定截取视频的结束时间点
./cut_out.mp4 指定截取视频保存路径与文件名
-c:v libx264 -crf 18  指定使用H264标准 crf=18模式对原视频中的视频片段进行重新编码,从而得到截取视频
-c:v copy -c:a copy  不进行重新编码,直接拷贝原视频中的视频片段,保存为截取视频

除非对保持原始视频码流有强烈需求,否则不推荐使用-c:v copy 进行视频截取

原因:ffmpeg在使用-c:v copy对原视频码流进行直接截取时,并不是按照指定时间截取的,而是从指定时间附近的 I I I帧开始截取和终止(可查看右侧文章链接,了解IBP帧的含义: 什么是I帧、P帧和B帧?)。这样就会出现两个问题:

  1. 截取出来的视频片段时间长度与 指定的时间不同
  2. 截取的时间长度相同,但可能在使用部分播放器播放视频时,前几秒一直停顿在相同画面,等待播放了一段时间后,画面才恢复正常

使用-c:v libx264 的方式截取视频,其实是对指定的原始视频片段进行重新编码。通过指定-crf 18来保证编码视频的画面质量与原视频近似相同。

这种方式的优点是:截取视频的时间长度与指定时刻完全相同,且视频能正常播放

缺点是:视频画面与原始视频会存在轻微细小差异(毕竟重新编码了┓( ´∀` )┏)

如果对原视频画面没有特别强烈的需求,建议采用这种方式进行截取。

截取特定长度的视频

优先使用

shell 复制代码
ffmpeg -i ./input.mp4 -c:v libx264 -crf 18 -ss 00:00:10 -t 15 ./cut_out.mp4

或下面这种(不推荐使用)

shell 复制代码
ffmpeg -i ./input.mp4 -c:v copy -c:a copy -ss 00:00:10 -t 15 ./cut_out.mp4

str = "5134f58d-bde8-455b-bd5d-34bfbc99c349"

字段说明

复制代码
-t 15  指定截取视频的秒数
其它字段与上方描述一致
相关推荐
sweetone13 小时前
LINN莲CLASSIK桌面音响微修
经验分享·音视频
Echo_NGC223716 小时前
【FFmpeg 使用指南】Part 3:码率控制策略与质量评估体系
人工智能·ffmpeg·视频·码率
晚霞的不甘17 小时前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
美狐美颜SDK开放平台18 小时前
多终端适配下的人脸美型方案:美颜SDK工程开发实践分享
人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
饭饭大王66621 小时前
CANN 生态深度整合:使用 `pipeline-runner` 构建高吞吐视频分析流水线
人工智能·音视频
xmRao1 天前
Qt+FFmpeg 实现 PCM 音频转 AAC 编码
qt·ffmpeg·pcm
xmRao1 天前
Qt+FFmpeg 实现录音程序(pcm转wav)
qt·ffmpeg
晚霞的不甘1 天前
CANN 编译器深度解析:TBE 自定义算子开发实战
人工智能·架构·开源·音视频
愚公搬代码1 天前
【愚公系列】《AI短视频创作一本通》016-AI短视频的生成(AI短视频运镜方法)
人工智能·音视频
那个村的李富贵1 天前
CANN赋能AIGC“数字人”革命:实时视频换脸与表情驱动实战
aigc·音视频