FFmpeg 命令:从入门到精通 | ffmpeg 命令裁剪与合并视频

FFmpeg 命令:从入门到精通 | ffmpeg 命令裁剪与合并视频

FFmpeg 命令:从入门到精通 | ffmpeg 命令裁剪与合并视频

本节主要介绍了一些使用 ffmpeg 命令裁剪、合并视频的方法,并列举了一些例子。

裁剪生成测试文件

找三个不同的视频每个视频截取10秒内容:

复制代码
ffmpeg -i 沙海02.mp4 -ss 00:05:00 -t 10 -codec copy 1.mp4

ffmpeg -i 复仇者联盟3.mp4 -ss 00:05:00 -t 10 -codec copy 2.mp4

ffmpeg -i 红海行动.mp4 -ss 00:05:00 -t 10 -codec copy 3.mp4

注:如果音视频格式不统一则强制统一为 -vcodec libx264 -acodec aac。

将上述 1.mp4 / 2.mp4 / 3.mp4转成 ts 格式:

复制代码
ffmpeg -i 1.mp4 -codec copy -vbsf h264_mp4toannexb 1.ts

ffmpeg -i 2.mp4 -codec copy -vbsf h264_mp4toannexb 2.ts

ffmpeg -i 3.mp4 -codec copy -vbsf h264_mp4toannexb 3.ts

转成flv格式:

复制代码
ffmpeg -i 1.mp4 -codec copy 1.flv

ffmpeg -i 2.mp4 -codec copy 2.flv

ffmpeg -i 3.mp4 -codec copy 3.flv

分离某些封装格式(例如MP4 / FLV / MKV 等)中的 H.264 的时候,需要首先写入 SPS 和 PPS,否则会导致分离出来的数据没有 SPS、PPS 而无法播放。

H.264 码流的 SPS 和 PPS 信息存储在 AVCodecContext 结构体的 extradata 中。需要使用 ffmpeg 中名称为 h264_mp4toannexb 的 bitstream filter 处理。

拼接文件

以 MP4 格式进行拼接:

方法1:

复制代码
ffmpeg -i "concat:1.mp4|2.mp4|3.mp4" -codec copy out_mp4.mp4 	

注:错误用法。

方法2:

复制代码
ffmpeg -f concat -i mp4list.txt -codec copy out_mp42.mp4

mp4list.txt:

复制代码
file '1.mp4'
file '2.mp4'
file '3.mp4'

以 TS 格式进行拼接:

方法1:

复制代码
ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out_ts.mp4 	

方法2:

复制代码
ffmpeg -f concat -i tslist.txt -codec copy out_ts2.mp4

tslist.txt:

复制代码
file '1.ts'
file '2.ts'
file '3.ts'

以 FLV 格式进行拼接:

方法1:

复制代码
ffmpeg -i "concat:1.flv|2.flv|3.flv" -codec copy out_flv.mp4

注:错误用法。

方法2:

复制代码
ffmpeg -f concat -i flvlist.txt -codec copy out_flv2.mp4

flvlist.txt:

复制代码
file '1.flv'
file '2.flv'
file '3.flv'

注:方法 1 只适用部分封装格式,比如 TS。

建议:

  1. 使用方法 2 进行拼接。
  2. 转成 TS 格式再进行拼接。

拼接不同编码的文件

修改音频编码:

复制代码
ffmpeg -i 2.mp4 -vcodec copy -acodec ac3 -vbsf h264_mp4toannexb 2.ts

ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out1.mp4 

结果第二段没有声音。

修改音频采样率:

复制代码
ffmpeg -i 2.mp4 -vcodec copy -acodec aac -ar 96000 -vbsf h264_mp4toannexb 2.ts

ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out2.mp4

第二段播放异常。

修改视频编码格式:

复制代码
ffmpeg -i 1.mp4 -acodec copy -vcodec libx265 1.ts

ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out3.mp4 

修改视频分辨率:

复制代码
ffmpeg -i 1.mp4 -acodec copy -vcodec libx264 -s 800x472 -vbsf h264_mp4toannexb 1.ts

ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out4.mp4 

注意:

  1. 把每个视频封装格式也统一为 ts,拼接输出的时候再输出你需要的封装格式,比如 MP4。
  2. 视频分辨率可以不同,但是编码格式需要统一。
  3. 音频编码格式需要统一,音频参数(采样率/声道等)也需要统一。
相关推荐
优选资源分享5 小时前
solong 批量音频转换器 V1.9 丨高效批量音频格式转换工具
音视频
MaximusCoder10 小时前
等保测评命令——达梦数据库 DM
linux·运维·数据库·安全·ffmpeg·安全威胁分析
oracleworm11 小时前
BiliBili视频下载及提取音频
音视频
召田最帅boy13 小时前
为博客每日一句添加音频播放功能
spring boot·html·音视频
balmtv13 小时前
Gemini 3多模态统一架构深度拆解:从稀疏注意力到原生视频生成的工程实现
人工智能·架构·音视频
EasyCVR13 小时前
从流媒体转发到智能分析:EasyCVR的视频技术演进
人工智能·ffmpeg·音视频·视频监控·gb28181
EasyDSS14 小时前
EasyDSS视频流媒体WebRTC技术解析:智慧校园直播、点播与会议一体化融合实践
运维·网络·人工智能·架构·音视频·m3u8·点播技术
雾江流14 小时前
BV电视版 0.3.14.r877 | 纯净好用的第三方B站TV,支持8K视频
音视频·软件工程
视***间14 小时前
视程空间(VisionSpace):以音视频技术创新,构筑全行业智能化新基座
人工智能·音视频·边缘计算·传感器·视程空间
WX1861636190914 小时前
索尼相机视频变为RSV格式怎么封装修复转换为MP4视频
数码相机·音视频