gpt4 book ai didi

node.js - (没有接受的答案)如何使用 ffmpeg 或 opencv 将 2 个重叠视频合并为一个视频?

转载 作者:太空宇宙 更新时间:2023-11-03 22:38:25 25 4
gpt4 key购买 nike

合并两个视频很容易,已经回答了几次。我拥有的是多个重叠的视频。视频可能与之前的视频重叠。这意味着如果视频 1 涵盖 1-5 时间线,则视频 2 可能与 1 重叠,并涵盖 3 到 8。按原样合并它们将导致 1-5|3-8,而我只需要 1-8。

视频按字母顺序排序。

我的解决方案的总体思路是...

  • 抓取视频的最后一帧
  • 如果是第一个视频继续
  • 如果不是第一个视频,即。 2、逐帧搜索前面步骤保存的帧
  • 如果到达当前视频的最后一帧则没有重叠继续
  • 如果它找到一个帧,则将第二个视频剪辑到该帧(含),然后转到下一帧
  • 分析完所有视频后,将它们合并为一个视频。

我需要将其转换为 ffmpeg 命令。或者 opencv(如果这是更好的工具)。

如果有更好的方法,我也很感兴趣。

最佳答案

对于 ffmepg,您可以使用下面的脚本。它测试了它。但在时间上,您必须将视频中的 STARTPTS+5 更改为 +25。我在这里放 5 来测试合并是否发生。

ffmpeg -i 2.mp4 -i 1.mp4 -filter_complex "[1]setpts=PTS-STARTPTS+5/TB[top];[0:0][top]overlay=enable='between(t\,10,15)'[out]" -shortest -map [out] -map 0:1        -pix_fmt yuv420p -c:a copy -c:v libx264 -crf 18 output1.mp4

限制这需要源足够长,这意味着您需要视频 Canvas ,然后使用此脚本将每个视频添加到 Canvas 中。

并且在 ffmpeg 中没有完全自主的使用方式。

你是对的。 Opencv 无法处理音频。需要 3rd 方库支持才能同时运行。在此之前,我必须使用 ROS 从网络摄像头获取机器人系统的声音和视觉。然后使用 NLP 处理声音以获得自然语言用户界面,视觉单独用于定位和映射。

有一些路可以走走。

首先,您在本地窗口批处理上使用 OpenCV 模板匹配或图像差异。最小的错误位置将为您提供要插入的正确位置 A。这应该是毫秒级别的精确度。 (如果error一直很大,说明没有重叠,返回异常)

其次,基于从opencv得到的正确位置。调用 system.call 以 A 参数作为输入调用上述脚本以进行自动合并。

取决于你的应用,如果你需要经常做,写opencv python脚本自动熔断。如果每月一次,用 ffmepg 手动完成就足够了

关于node.js - (没有接受的答案)如何使用 ffmpeg 或 opencv 将 2 个重叠视频合并为一个视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56447495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com