如何用ffmpeg制作马赛克,而不会同时播放每个视频?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用ffmpeg制作马赛克,而不会同时播放每个视频?相关的知识,希望对你有一定的参考价值。

  • 使用FFmpeg,我想将4个视频编码成包含来自每个视频的音频的马赛克。

  • 另外,我希望此马赛克一次播放1个视频,而其他视频则暂停播放直到一个播放结束。要播放的第一个视频是左上的,然后是右上的,然后是左下的,直到停止播放每个视频时都以完成右转的结尾:永远不要同时播放。

  • 最后,我希望此马赛克显示未播放的视频的第一帧(有点像缩略图。

甚至有可能吗?您能帮我弄清楚如何吗?请吗?

非常感谢您的帮助!

答案

使用tpadadelayxstackamix过滤器:

ffmpeg -i top-left.mp4 -i top-right.mp4 -i bottom-left.mp4 -i bottom-right.mp4 -filter_complex "[1]tpad=start_mode=clone:start_duration=5[tr];[2]tpad=start_mode=clone:start_duration=10[bl];[3]tpad=start_mode=clone:start_duration=15[br];[0][tr][bl][br]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0[v];[1:a]adelay=5s|5s[a1];[2:a]adelay=10s|10s[a2];[3:a]adelay=15s|15s[a3];[0:a][a1][a2][a3]amix=inputs=4[a]" -map "[v]" -map "[a]" output.mp4
  • 此示例假定每个输入都有立体声音频流,并且每个输入的持续时间均为5秒。根据需要调整start_durationadelay值。

  • 如果出现错误No such filter,则说明您的版本太旧。

  • <<

以上是关于如何用ffmpeg制作马赛克,而不会同时播放每个视频?的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg学习5:多线程播放视音频

如何用 FFmpeg 编写一个简单播放器详

FFmpeg入门

基于ffmpeg+SDL视频播放器制作任务概述

FFmpeg:如何用幻灯片和音频制作视频

FFmpeg学习6:视音频同步