【发布时间】:2019-10-20 04:43:52
【问题描述】:
合并两个视频很容易,已经回答了几次。我拥有的是多个重叠的视频。视频可能与之前的视频重叠。这意味着如果视频 1 覆盖 1-5 时间线,则视频 2 可能与 1 重叠,并覆盖 3 到 8。当我只需要 1-8 时,按原样合并它们会产生 1-5|3-8。
视频按字母顺序排序。
我对解决方案的总体思路是……
- 抓取视频的最后一帧
- 如果是第一个视频,请继续
- 如果不是第一个视频,即。 2、逐帧搜索上一步保存的帧
- 如果到达当前视频的最后一帧,则没有重叠继续
- 如果找到一帧,则将第二个视频剪辑到该帧(包括该帧),然后转到下一帧
- 分析完所有视频后,将它们合并为一个视频。
我需要把它翻译成 ffmpeg 命令。或者 opencv 如果那是一个更好的工具。
如果有更好的方法,我也对此感兴趣。
【问题讨论】:
-
我不认为 ffmpeg 可以轻松地做你想做的事。应该从opencv开始。并且路由应该是 final_img_mat = \sum alpha_id * image_id_video_id。不太清楚你在做什么或有什么困难。
-
我想合并两个视频。视频可能有重叠。我的问题是我对 opencv 的经验为零。
-
在某个网站上发布视频。我会帮你写一个简单的代码来组合它们
-
顺便说一句,如果只有 2 个流,您可以使用 FFMEPG。但如果更多并且有 1-5|3-8 排序或操作。只需使用opencv。对于合并 2 流,您可以使用: ffmpeg -i input.mov -i overlay.mov -filter_complex "[1:v]setpts=PTS-10/TB[a]; [0:v][a]overlay=enable =gte(t\,5):shortest=1[out]" -map [out] -map 0:a -c:v libx264 -crf 18 -pix_fmt yuv420p -c:a 复制输出.mov
-
我非常接近使用 opencv 来做这件事,但了解到 opencv 不处理音频,这使得 opencv 对我来说毫无用处。