我想将两个视频合并为一个。第一个视频应覆盖整个屏幕。第二个视频应覆盖屏幕右上方较小的区域(因此与第一个视频重叠)。
理想情况下,该过程应实现自动化。例如,使用一个脚本,输入两个视频并输出一个电影文件。
有人能推荐一个可以让我做到这一点的 Linux 视频编辑工具吗?
PS:上下文是讲座录制。主屏幕将被白板或演示者桌面的录制内容覆盖,而演示者本人则显示在屏幕右上方的矩形中。
编辑
作为开发人员,我愿意熟悉 GStreamer 并编写一个满足我需求的应用程序。这是个好主意吗?
编辑2
刚刚发现这很有趣gst 启动脚本这几乎完全符合我的要求。让我试试看。
答案1
这一行代码向你展示了如何操作,只需调整尺寸以匹配你的屏幕分辨率即可。
gst-launch \
v4l2src device=/dev/video1 \
! video/x-raw-yuv,width=352,height=288,framerate=\(fraction\)30/1 \
! videoscale \
! video/x-raw-yuv,width=640,height=480 \
! cairotextoverlay text=1 shaded-background=true deltax=310 deltay=-430 \
! videobox left=0 top=0 border-alpha=0 \
! videomixer name=mix \
! xvimagesink \
v4l2src device=/dev/video0 \
! video/x-raw-yuv,width=640,height=480,framerate=\(fraction\)30/1 \
! videoscale \
! video/x-raw-yuv,width=1280,height=960 \
! cairotextoverlay text=2 shaded-background=true deltax=630 deltay=-910 \
! videobox left=0 top=0 border-alpha=0 \
! mix.
答案2
我问了类似的问题71694。我最终编写了一个 Python 脚本来执行我想要的操作。这比预期的要容易,我最终得到了一个完全自动化的解决方案,尽管显然需要编程技能。
这是我的工作流程;
- 使用以下方式将输入视频导出为图像序列ffmpeg
- 定义一个配置文件,确定输出中视频的位置、帧速率、开始和停止时间等。
- 该 Python 脚本使用Python 图像库(PIL)并将它们写出为新的图像序列
- 使用 ffmpeg 将输出重新组合成视频
如果您想走这条路,我很乐意分享更多细节和代码。否则,我也用过卡姆塔西亚(不是 Linux,所以可能对你没用)来制作一些基本的画中画内容(他们有这里有很好的教程)
答案3
答案4
你看过了吗数字视频切换器? 这是 Debian 项目用于录制会议的工具。
它与您所要求的略有不同,因为它会实时混合两个视频流,用于流式传输和录制。缺点是您会丢失完整质量的原始视频,但优点是,您不需要太多磁盘存储空间,因为只需存储混合输出即可。
它也是一个 GUI 应用程序,可以实时查看叠加/混合视频。