ffmpeg命令行处理视频,学习记录

ffmpeg命令行处理视频

截取视频前5s
ffmpeg -ss 00:00:00 -t 00:00:05 -i .\public\uploads\20231109\116a292eccf8315f65d7166e794d1730.mp4 .\public\uploads\20231109\116a292eccf8315f65d7166e794d1731.mp4
两视频合并为1个
ffmpeg -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\116a292eccf8315f65d7166e794d1730.mp4  -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\d5dc28f0ddc5aa1a21a608e762bfbe7b.mp4 -vf "scale=720:1280"  F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\output1.mp4
将后面的视频放在前面视频右下角
ffmpeg -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\116a292eccf8315f65d7166e794d1730.mp4 -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\d5dc28f0ddc5aa1a21a608e762bfbe7b.mp4 -filter_complex "[0:v][1:v] overlay=W-w-10:H-h-10:enable='between(t,1,5)'" F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\output2.mp4
把a视频缩小到指定宽高
ffmpeg -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\d5dc28f0ddc5aa1a21a608e762bfbe7b.mp4 -vf "scale=180:240:flags=lanczos" -crf 1 F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\be7b_1_11.mp4
合并两个视频,把a视频放在b视频的右下角# 在这个命令中,-i b.mp4和-i a.mp4分别指定了要合并的两个视频文件b.mp4和a.mp4。-filter_complex "[1:v][0:v] overlay=W-w-10:H-h-10:enable=‘between(t,1,5)’"指定了使用overlay过滤器将视频a.mp4放在视频b.mp4的右下角,W-w-10:H-h-10表示将视频a.mp4的宽度和高度都缩小为10个像素。最后的output.mp4是生成的视频输出文件的名称。
请确保将命令中的文件名替换为你实际要合并的视频文件的路径和文件名,以及将输出文件名替换为你希望生成的输出文件的路径和文件名。运行命令后,将会生成一个合并后的视频文件,其中视频a.mp4位于视频b.mp4的右下角。
你已经设置了overlay=W-w-10:H-h-10:enable=‘betweent,1,5)’,这意味着从第二个视频(即be7b_1_10.mp4)开始后的5秒到第一个视频(即116a292eccf8315f65d7166e794d1730.mp4)的第5秒这段时间内,第二个视频会覆盖在第一个视频的右下角。之后,它将一直保持这个状态到结束。
ffmpeg -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\116a292eccf8315f65d7166e794d1730.mp4 -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\be7b_1_10.mp4 -filter_complex "[0:v][1:v] overlay=W-w-10:H-h-10:enable='between(t,1,5)'" F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\output4.mp4
这个命令将使得be7b_1_10视频从开始到结束都覆盖在116a292eccf8315f65d7166e794d1730.mp4的视频的右下角
ffmpeg -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\116a292eccf8315f65d7166e794d1730.mp4 -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\be7b_1_10.mp4 -filter_complex "[0:v][1:v] overlay=W-w-100:H-h-100" F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\output4.mp4
视频去绿幕

转格式

ffmpeg -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\be7b_1_11.mp4 -vf "chromakey=0x00FF00:0.2:0.8" -c copy -c:v png F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\be7b_1_11.mov

去绿幕

 ffmpeg -y -i F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\be7b_1_11.mov -vf "chromakey=0x00FF00:0.2:0.8" -c copy -c:v libvpx-vp9 -c:a libopus F:\xuejiao\code\cms.openlai.com\public\uploads\20231109\be7b_1_11.webm
直接将绿幕人物嵌入背景视频中(浅色绿幕)
ffmpeg -i 背景视频.mp4 -i 缩放后绿幕人物视频.mp4 -filter_complex "[1:v]chromakey=Green:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" 新视频.mp4
使用透明蒙版文件(无法实现)
ffmpeg -i 绿幕视频.mp4 -vf "chromakey=0x00FF00:0.1:0.2" -c:v png mask.png
透明mask文件
直接嵌入(绿边严重)
ffmpeg -i D:\demo\bg_1.mp4 -i D:\demo\video_2.mp4 -filter_complex "[1:v]chromakey=0x00ff00:0.1:0.0[fg_keyed];[0:v][fg_keyed]overlay=W-w-10:H-h-10:enable='between(t,1,5)'" -map "[out]" -map 1:a -c:v libx264 -c:a aac -y D:\demo\output_1.mp4
扣绿色嵌入(推荐)
ffmpeg -i 背景视频.mp4 -i 绿幕人像视频.mp4 -filter_complex "[1:v]chromakey=0x1CE90A:0.1:0.0[fg_keyed];[0:v][fg_keyed]overlay=x=W-w-10:y=H-h-10:shortest=1[out]" -map "[out]" -map 1:a -c:v libx264 -c:a aac -y 新视频位置.mp4

0x1CE90A  调整相应绿幕颜色  0x色域  否则人像绿边严重
绿边最浅建议使用
 ffmpeg -i 背景视频地址.mp4 -i 绿幕人像视频地址.mp4 -shortest -filter_complex "[1:v]chromakey=0x19DC08:0.1:0.2[ckout];[0:v][ckout]overlay=x=W-w-10:y=H-h-10:shortest=1[out]" -map "[out]" 合成视频地址.mp4 

(需注意绿幕色域否则会出现绿边问题0x绿幕色域;位置x=人像视频距离左上角水平位置变量 y=人像视频距离左上角垂直位置变量 可直接x=人像视频距离左上角水平位置变量:y=人像视频距离左上角垂直位置变量 也可以x=W-w-人像视频距离左上角水平位置变量:y=H-h-人像视频距离左上角垂直位置变量)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值