显示两个视频,然后作为一个单一屏幕上合并后的视频输出(Display two videos toge

2019-08-17 18:21发布

这个问题可能听起来有点复杂或不明确的,但我会尽量做到明确的,因为我可以。 我已经做了很多的谷歌搜索,并花了很多时间,但没有发现相关的窗户什么。

我想打一个屏幕上两个视频。 一个如在背景全屏幕和一个上在右角一个小窗口或小宽度/高度它的上面。 然后我想它由两个视频在单个屏幕上一起玩的输出。

所以基本上一个视频覆盖另一个,然后我想那流作为输出,使用户可以在以后播放流。

我不要求你写整个代码,只是告诉我该怎么做还是怎么做或工具或第三方SDK我必须使用做到这一点。

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

1. Xuggler -不支持Android

2. JavaCVJJMPEG -无法找到这表明如何做到这一点的任何教程?

现在找FFMPEG-搜索了很久,但没能找到这表明编码的方式去做任何教程。 我发现命令行的方式如何解决它。 所以,任何人都可以建议或点FFMPEG的教程或告诉任何其他方式

Answer 1:

我会开始JavaCV 。 这是相当不错的,灵活的。 它应该让你抓帧,复合它们,并将它们写回文件。 使用FFmpegFrameGrabber和记录类。 该组合物可以手动完成。

答案的其余部分取决于几件事情:

  • 你想从一个文件/ MEM / URL读?
  • 你想保存到一个文件/ MEM /网址是什么?
  • 你需要实时处理?
  • 你需要的东西比简单的子母画面吗?


Answer 2:

你可以使用OpenGL这样的伎俩。 但是请注意,您将需要有渲染的步骤,一个呈现在FBO第一视频,然后第二个渲染第二个视频,使用FBO作为TEXTURE0,第二个作为EXTERNAL_TEXTURE。

融合,以及所有你想要的东西会被OpenGL的完成。

你可以在这里查看源代码: 使用表面纹理中的Android和这里的一些重要信息: 表面纹理的Android的OpenGL的组合(外部图像)和普通质地

我不知道的唯一的事情是,当媒体播放器的两个实例并行运行会发生什么。 我想这不应该是一个问题。



Answer 3:

ffmpeg的是一个非常活跃的项目,变更和发布的很多的所有的时间。

你应该看看Xuggler项目,这提供了一个Java API为你想要做什么,以及他们与ffmpeg的紧密集成。

http://www.xuggle.com/xuggler/

如果您选择走下来的Runtime.exec()的路径,这Red5的线程应该是有用的:

http://www.nabble.com/java-call-ffmpeg-ts15886850.html



文章来源: Display two videos together then output as a merged video on a single screen