利用ffmpeg对视频进行裁剪与拼接

准备:要裁剪的视频,要求是编码格式,分辨率一致

视频时长裁剪
首先将视频由帧间编码转为帧内编码,这样可以任意裁切时间点,不受关键帧影响。否者可能出现这种情况:当你需要裁剪一个视频的00:00:10-00:00:40这个时间段,但是裁剪出来的结果可能不是30秒整,原因就是在10秒处和40秒处不是关键字,导致视频长度不是你需要的那部分,因此需要将视频有帧间编码转为帧内编码,然后再做裁剪工作。
ffmpeg -i C:\1.mp4 -qscale 0 -intra C:\11.mp4 //由帧间编码转为帧内编码
ffmpeg  -i C:\11.mp4 -vcodec copy -acodec copy -ss 00:00:00 -t 00:00:20 C:\111. mp4 -y -ss time_off //裁剪时长为20秒,开始时间为 00:00:00的视频

-ss 开始时间,如: 00:00:20,表示从20秒开始;
-t 时长,如: 00:00:10,表示截取10秒长的视频;
-i 输入,后面是空格,紧跟着就是输入视频文件;
-vcodec 视频的编码格表示所要使用的视频式;
-acodec 音频的编码格表示所要使用的视频式;

合并 MP4 视频
ffmpeg + ts
先将 mp4 转化为同样编码形式的 ts 流,因为 ts流是可以合并的。合并 ts 流后再把 ts 流转化为 mp4。
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4




发布了11 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/LQ753799168/article/details/53915866