我需要裁剪视频文件的多个部分,并将其合并成一个新的视频。

如果我只想剪下一部分,我会做:

ffmpeg -i video.mp4 -ss 00:00:03.500 -to 00:00:08.500 -async 1 cut.mp4 -y

我想剪多个部分,然后合并所有的裁剪:

#视频裁剪:
ffmpeg -ss 00:00:09.846609 -to 00:00:12.263177 -i a.mp4 b.mp4
ffmpeg -ss 00:00:27.916761 -to 00:00:28.890601 -i a.mp4 c.mp4
#视频合并:
echo file 'b.mp4' >> concat.txt
echo file 'c.mp4' >> concat.txt
ffmpeg -f concat -i concat.txt end.mp4

但对于较大的视频文件,这是非常低效的。

为了进行两次切割,我使用过滤器复合体

如果我这样做,我会得到一个没有音频的视频:

command  = 'ffmpeg -i video.mp4 \-filter_complex "\[0]trim=start_frame=10:end_frame=20[v0];\[0]trim=start_frame=30:end_frame=40[v1];\[v0][v1]concat=n=2[v5]"\-map [v5]  -async 1 output.mp4'

如果我这么做,事情就会一团糟:

ffmpeg -y -i video.mp4 \-filter_complex "\[0:v]trim=start_frame=10:end_frame=20[v0];\[0:a]atrim=start=10:end=20[a0];\[0:v]trim=start_frame=30:end_frame=40[v1];\[0:a]atrim=start=30:end=40[a1];\[v0][a0][v1][a1]concat=2:v=1:a=1[v5][a]"\-map [v5] -map [a] -async 1 output.mp4

我甚至尝试用Python中的ffmpeg Python(GitHub - kkroening/ffmpeg-python: Python bindings for FFmpeg - with complex filtering support)来实现这一点,但也无法让音频工作。

最终通过选择过滤器实现了该需求:

ffmpeg -i video -vf "select='between(t,4,6.5)+between(t,17,26)+between(t,74,91)',setpts=N/FRAME_RATE/TB" -af "aselect='between(t,4,6.5)+between(t,17,26)+between(t,74,91)',asetpts=N/SR/TB" out.mp4

select及其对应的滤波器分别应用于视频和音频,选择的分段是4到6.5秒,17到26秒,最后是74到91秒;时间戳与设置点及其对应的过滤器保持连续。

ffmpeg 裁剪、合并视频的多个部分相关推荐

  1. ffmpeg裁剪合并视频

    ffmpeg提供简单的命令参数: ffmpeg -ss START -t DURATION -i INPUT -vcodec copy -acodec copy OUTPUT 对上面的命令稍做个解释. ...

  2. java利用ffmpeg追加合并视频文件

    java利用ffmpeg追加合并视频文件 首先要用到ffmpeg,可以根据操作系统自行下载 每个视频格式要一样,分辨率要一样 多个视频地址以list存放,直接上代码 /*** 合并视频文件* @par ...

  3. 使用 ffmpeg 快速合并视频文件

    1. 下载安装 ffmpeg 在官网上下载 ffmpeg 链接: Download FFmpeg windos 下下载 .ZIP 格式的 ffmpeg 直接解压即可,无需安装,之后配置好环境变量就好了 ...

  4. 编写Bash脚本实现使用FFmpeg批量合并视频

    前言 使用FFmpeg能够很方便的合并同分辨率的视频.很多时候我们可能需要批量化合并视频,此时可以通过编写Bash脚本来实现. 实现 批量合并视频 合并三个文件夹中的视频结果: result_path ...

  5. 利用ffmpeg来合并视频

    因为最近要求AcDown加入视频合并功能的呼声非常高(几乎一半多的反馈都在说这个问题),所以下午花了些时间来研究怎样用最方便(不需要最快)的方法来进行视频合并. AcDown之前的版本使用的是某个第三 ...

  6. 【翻译】FFmpeg裁剪(seeking)视频后音画不同步的原因

    https://trac.ffmpeg.org/wiki/Seeking 1.介绍 如果只需要提取输入的特定部分,需要使用seeking选项来获取输入中的特定部分.参数-ss用于在输入中查找,它可以以 ...

  7. 使用ffmpeg合并视频文件的三种方法

    ffmpeg合并视频的方法有三种.国内大多数仅介绍了其中之一.于是觉得有必要翻译一下.其实在ffmpeg的 FAQ文档中有比较详细的说明. 使用concat协议进行视频文件的合并 这种方式的适用场景是 ...

  8. ffmpeg无损裁剪、合并视频

    我用的版本是 ffmpeg version git-2020-06-23-ce297b4 官方文档 https://ffmpeg.org/ffmpeg-utils.html#time-duration ...

  9. 使用ffmpeg裁剪和合并视频

    剪切视频 使用 -ss 和 -t 选项,从第0秒开始,向后截取31秒视频,并保存 ffmpeg -ss 00:00:00 -i video.mp4 -vcodec copy -acodec copy ...

最新文章

  1. 南通专转本计算机考试几级,江苏专转本考试了解多少?
  2. 选择排序 C++代码实现及性能分析 恋上数据结构笔记
  3. python写入一个文件之前可以不打开_如何用python实现真正的打开和关闭文件
  4. IOS9+基础之警报框弹出和操作表弹出
  5. 吴恩达“机器学习”——学习笔记二
  6. mysql索引的使用[下]
  7. 安卓双屏折叠手机!看了微软时隔四年发布的手机 手里的iPhone差点掉地上
  8. JavaScript文档对象模型DOM节点操作之创建和添加节点(5)
  9. cobbler之详细配置
  10. 理解 Delphi 的类(十) - 深入方法[21] - 开放数组参数
  11. VS2012下MFC程序的换肤(Skin++、SkinMagic、USkin、SkinSharp)
  12. 概率论与数理统计 第四版 浙江大学 盛骤,谢式千,潘承毅 个人阅读笔记
  13. 初步认识ADRC(自抗扰控制)与应用
  14. 原生对象、内置对象、宿主对象的区别
  15. Julia学习笔记:使用GLM包进行一元回归分析及模型拟合度检验
  16. android版幻灯片软件,手机幻灯片制作器
  17. Gartner 发布2022年新兴技术成熟度曲线
  18. DBeaver与excel
  19. 学习C++:单目运算符,双目运算符,三目运算符
  20. python调用短信猫

热门文章

  1. 微信小程序动态点赞php,微信小程序小组件 基于Canvas实现直播点赞气泡效果
  2. python取前三位_python的字符串截取||取字符串前三位
  3. 公司上市需要具备的条件有哪些
  4. 二、java项目常用工具类之beancopy,bean和map转换工具类
  5. 农夫过河问题的c语言实现
  6. 【时间序列分析】03. 谱密度
  7. 【Unity 知识点】Unity 如何查找被隐藏的游戏对象
  8. SVG代码如何转为SVG文件
  9. CUDA11.3以及PyTorch-GPU版本安装
  10. VB.NET中的回车换行