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


    ffmpeg命令行处理视频

    截取视频前5s
    ffmpeg -ss 00:00:00 -t 00:00:05 -i .\public\uploads\20231109\116a292eccf8315f65d7166e794d1730.mp4 .\public\uploads\20231109\116a292eccf8315f65d7166e794d1731.mp4
    
    • 1
    两视频合并为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
    
    • 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 -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
    
    • 1
    把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
    
    • 1
    合并两个视频,把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
    
    • 1
    这个命令将使得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
    
    • 1
    视频去绿幕

    转格式

    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
    
    • 1

    去绿幕

     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
    
    • 1
    直接将绿幕人物嵌入背景视频中(浅色绿幕)
    ffmpeg -i 背景视频.mp4 -i 缩放后绿幕人物视频.mp4 -filter_complex "[1:v]chromakey=Green:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" 新视频.mp4
    
    • 1
    使用透明蒙版文件(无法实现)
    ffmpeg -i 绿幕视频.mp4 -vf "chromakey=0x00FF00:0.1:0.2" -c:v png mask.png
    透明mask文件
    
    • 1
    • 2
    直接嵌入(绿边严重)
    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
    
    • 1
    扣绿色嵌入(推荐)
    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色域  否则人像绿边严重
    
    • 1
    • 2
    • 3
  • 相关阅读:
    [学习笔记]多元线性回归的梯度下降
    VsCode中搭建TypeScript调试环境
    【21天学习挑战赛—经典算法】LeetCode 26. 删除有序数组中的重复项
    【小程序】微信小程序设置globalData全局数据
    使用C#/.NET解析Wiki百科数据实现获取历史上的今天
    c++多源BFS
    AndroidStudio电脑连接手机后但AndroidStudio识别不到
    脱离form表单校验input(校验单个input输入框)提交时边框变红
    微信小程序中封装请求,使用Async await方法,将异步请求变为同步请求方法
    动态规划模型:0-1背包问题
  • 原文地址:https://blog.csdn.net/Seven_color_rainbow/article/details/134380083