这个问题可能听起来有点复杂或不明确的,但我会尽量做到明确的,因为我可以。 我已经做了很多的谷歌搜索,并花了很多时间,但没有发现相关的窗户什么。
我想打一个屏幕上两个视频。 一个如在背景全屏幕和一个上在右角一个小窗口或小宽度/高度它的上面。 然后我想它由两个视频在单个屏幕上一起玩的输出。
所以基本上一个视频覆盖另一个,然后我想那流作为输出,使用户可以在以后播放流。
我不要求你写整个代码,只是告诉我该怎么做还是怎么做或工具或第三方SDK我必须使用做到这一点。
更新 :尝试了很多的解决方案。
1. Xuggler
-不支持Android
。
2. JavaCV
或JJMPEG
-无法找到这表明如何做到这一点的任何教程?
现在找FFMPEG-搜索了很久,但没能找到这表明编码的方式去做任何教程。 我发现命令行的方式如何解决它。 所以,任何人都可以建议或点FFMPEG的教程或告诉任何其他方式
我会开始JavaCV 。 这是相当不错的,灵活的。 它应该让你抓帧,复合它们,并将它们写回文件。 使用FFmpegFrameGrabber和记录类。 该组合物可以手动完成。
答案的其余部分取决于几件事情:
- 你想从一个文件/ MEM / URL读?
- 你想保存到一个文件/ MEM /网址是什么?
- 你需要实时处理?
- 你需要的东西比简单的子母画面吗?
你可以使用OpenGL这样的伎俩。 但是请注意,您将需要有渲染的步骤,一个呈现在FBO第一视频,然后第二个渲染第二个视频,使用FBO作为TEXTURE0,第二个作为EXTERNAL_TEXTURE。
融合,以及所有你想要的东西会被OpenGL的完成。
你可以在这里查看源代码: 使用表面纹理中的Android和这里的一些重要信息: 表面纹理的Android的OpenGL的组合(外部图像)和普通质地
我不知道的唯一的事情是,当媒体播放器的两个实例并行运行会发生什么。 我想这不应该是一个问题。
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