当前位置: 首页 > news >正文

FFmpeg实现文件夹多视频合并

使用FFmpeg合并文件夹中的多个视频文件,可以通过多种方式来实现,具体取决于你希望如何合并这些视频文件。下面介绍两种常见的方法:

  1. 按顺序拼接多个视频文件

    • 适用于希望将多个视频文件按顺序合并成一个视频文件的情况。
  2. 将多个视频文件布局在一个视频中

    • 适用于希望将多个视频文件同时显示在一个视频画面中的情况。

方法一:按顺序拼接多个视频文件

步骤:
  1. 创建文本文件
    • 创建一个文本文件 filelist.txt,列出所有要合并的视频文件。
    • 格式如下:
      file 'path/to/video1.mp4'
      file 'path/to/video2.mp4'
      file 'path/to/video3.mp4'
      
  2. 使用FFmpeg进行合并
    • 使用以下命令进行合并:
      ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
      
示例:

假设有三个视频文件 video1.mp4video2.mp4video3.mp4,它们存放在 /path/to/videos 目录下:

  1. 创建 filelist.txt
    file '/path/to/videos/video1.mp4'
    file '/path/to/videos/video2.mp4'
    file '/path/to/videos/video3.mp4'
    
  2. 运行FFmpeg命令:
    ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
    

方法二:将多个视频文件布局在一个视频中

步骤:
  1. 创建复杂滤镜

    • 使用 filter_complex 指定每个视频的布局位置。
  2. 使用FFmpeg进行合并

    • 例如,将两个视频水平拼接:
      ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v][1:v]hstack=inputs=2[v];[0:a][1:a]amerge=inputs=2[a]" -map "[v]" -map "[a]" -ac 2 output.mp4
      
示例:

假设有两个视频文件 input1.mp4input2.mp4,它们存放在 /path/to/videos 目录下,并希望将它们水平拼接:

  1. 运行FFmpeg命令:
    ffmpeg -i /path/to/videos/input1.mp4 -i /path/to/videos/input2.mp4 -filter_complex "[0:v][1:v]hstack=inputs=2[v];[0:a][1:a]amerge=inputs=2[a]" -map "[v]" -map "[a]" -ac 2 output.mp4
    
更多示例:
  • 垂直拼接多个视频文件

    ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v][1:v]vstack=inputs=2[v];[0:a][1:a]amerge=inputs=2[a]" -map "[v]" -map "[a]" -ac 2 output.mp4
    
  • 创建网格布局(例如2x2网格):

    ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "\
    [0:v][1:v]hstack=inputs=2[top]; \
    [2:v][3:v]hstack=inputs=2[bottom]; \
    [top][bottom]vstack=inputs=2[v]; \
    [0:a][1:a][2:a][3:a]amerge=inputs=4[a]" \
    -map "[v]" -map "[a]" -ac 2 output.mp4
    

自动生成filelist.txt脚本(针对方法一)

如果你有很多视频文件在一个文件夹中,可以使用一个简单的Bash脚本来生成 filelist.txt

#!/bin/bash# Change to the directory containing your video files
cd /path/to/videos# Generate filelist.txt
ls *.mp4 | while read filename; doecho "file '$PWD/$filename'" >> filelist.txt
done

然后运行上述脚本生成 filelist.txt 文件,接着运行FFmpeg合并命令:

ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

通过这些步骤,你可以轻松地使用FFmpeg将多个视频文件合并成一个视频文件。根据你的具体需求,选择合适的方法和配置。

http://www.lryc.cn/news/417464.html

相关文章:

  • [设备] 关于手机设备中几种传感器的研究
  • C#通过Modbus读取温度和湿度
  • 海量数据处理商用短链接生成器平台 - 9
  • 从困境到突破,EasyMR 集群迁移助力大数据底座信创国产化
  • 【Mysql】第十二章 视图特性(概念+使用)
  • 【颠覆数据处理的利器】全面解读Apache Flink实时大数据处理的引擎-上篇
  • 【C++】C++11(可变参数模板、lambda表达式、包装器)
  • 矩阵获客时代,云微客让你一个人成就一支队伍
  • 浅谈基础的图算法——Tarjan求强联通分量算法(c++)
  • 【Godot4自学手册】第四十四节用着色器(shader)实现溶解效果
  • 【画流程图工具】
  • Revit二次开发选择过滤器,SelectionFilter
  • 【Linux】进程概念—环境变量
  • 第十二章 Spring MVC 框架扩展和SSM框架整合(2023版本IDEA)
  • js中的全局函数有这些
  • Android SurfaceFlinger——重绘闪烁处理(四十六)
  • 罗马数字转整数 C++
  • Day20_2--介绍同步加载和异步加载
  • sftp做成一个池子
  • 全网最全-Netty从入门到精通
  • C#知识|文件与目录操作:对象的创建、保存、读取
  • 自定义 SwiftUI 中符号图像的外观
  • 循环神经网络和自然语言处理一
  • CSS技巧专栏:一日一例 20-纯CSS实现点击会凹陷的按钮
  • 20240807 每日AI必读资讯
  • 海外社媒账号如何让防关联?账号隔离的5大要点
  • 下一代 AI 搜索引擎 MindSearch:多智能体 + 系统2,模拟人类认知过程的 AI 搜索引擎
  • 一键生成专业PPT:2024年AI技术在PPT软件中的应用
  • Godot学习笔记8——PONG游戏制作
  • 软件RAID配置实战(2个案例场景)