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色域 否则人像绿边严重