Android 同时显示两个视频,然后在单个屏幕上作为合并视频输出

Android 同时显示两个视频,然后在单个屏幕上作为合并视频输出,android,ffmpeg,javacv,xuggler,android-videoview,Android,Ffmpeg,Javacv,Xuggler,Android Videoview,这个问题听起来可能有点复杂或模棱两可,但我会尽可能把它弄清楚。我做了很多谷歌搜索,花了很多时间,但没有找到任何与windows相关的东西 我想在一个屏幕上播放两个视频。一个在背景中显示为全屏,另一个在右角的小窗口或小宽度/高度中显示为全屏。然后我想要一个输出,其中包括两个视频一起在一个屏幕上播放 所以基本上一个视频覆盖另一个视频,然后我希望将其作为输出流,以便用户以后可以播放该流 我不是要你写完整的代码,只是告诉我要做什么或如何做,或者我必须使用哪个工具或第三方SDK来实现它 更新: 尝试了很多

这个问题听起来可能有点复杂或模棱两可,但我会尽可能把它弄清楚。我做了很多谷歌搜索,花了很多时间,但没有找到任何与windows相关的东西

我想在一个屏幕上播放两个视频。一个在背景中显示为全屏,另一个在右角的小窗口或小宽度/高度中显示为全屏。然后我想要一个输出,其中包括两个视频一起在一个屏幕上播放

所以基本上一个视频覆盖另一个视频,然后我希望将其作为输出流,以便用户以后可以播放该流

我不是要你写完整的代码,只是告诉我要做什么或如何做,或者我必须使用哪个工具或第三方SDK来实现它

更新: 尝试了很多解决方案

1.
Xuggler
-不支持
Android

2.
JavaCV
JJMPEG
-找不到任何建议如何操作的教程

现在正在寻找FFMPEG-搜索了很长时间,但没有找到任何教程,其中建议的编码方式来做这件事。我找到了命令行方法来修复它。 因此,任何人都可以建议或指向FFMPEG的教程,或者告诉我任何其他方法来开始。它很好而且很灵活。它应该允许您抓取帧、合成帧并将它们写回文件。使用FFmpegFrameGrabber和Recorder类。构图可以手工完成

答案的其余部分取决于以下几点:

  • 是否要读取文件/mem/url
  • 是否要保存到文件/mem/url
  • 你需要实时处理吗
  • 你需要的不仅仅是简单的画中画吗

ffmpeg是一个非常活跃的项目,随时都有大量的更改和发布

您应该看看Xugler项目,它为您想要做的事情提供了一个JavaAPI,并且它们与ffmpeg紧密集成

如果您选择沿着Runtime.exec()路径,这个Red5线程应该很有用:


您可以使用OpenGL来完成这项工作。但是请注意,您需要渲染步骤,一个渲染FBO中的第一个视频,然后第二个渲染第二个视频,使用FBO作为纹理0,第二个作为外部纹理

混合,所有你想要的东西都可以通过OpengL完成

您可以在此处查看源代码:以及一些重要信息:


我唯一不确定的是,当两个mediaplayer实例并行运行时会发生什么情况。我想这不应该是个问题。

长期以来一直关注这个问题,试图在windows中使用ffmpeg。但是我对c/c++没有很强的了解。我也试过FFMpeg,同样的问题是由于缺乏知识,我们有没有办法用java来解决。如果你能做PIP(画中画),那么我有一个简单的解决方案?那么解决方案是什么呢?如果是PIP,两个视频的持续时间应该是相同的,现在您必须使用ffmpeg对两个视频进行边缘化,并在全屏模式和小屏幕模式下从零分钟开始播放。您必须按总持续时间除以2来查找该视频。感谢您如此快速地回复,但现在我想读两个视频文件,然后一起显示,并将该流作为输出。。顺便说一句,它是在windows环境下工作的。所以JavaCV是一个不错的选择。我在google中发现了它:FFmpegFrameGrabber使用起来非常简单,所以你可以阅读文档,然后通过yourself@Zielony谢谢,但它没有显示如何播放两个视频并将其作为输出检索。@Zielony嘿,你能告诉我一些好的教程或文档吗,因为你提到的那个没有告诉我们如何播放两个不同的视频。我必须使用jni代码吗?因为我对此一无所知。你知道Xugler甚至不支持android吗(