我正在尝试结合视频剪辑一起使用MediaCodec API。有了解码器,MediaMuxer我可以将视频剪辑组合在一起,但是每个视频片段之间的转换似乎太枯燥了。我想在每个剪辑之间添加一些转换效果,比如GoPro Quik(带有漂亮的转换)。据我所知,Opengl着色器可以产生转换效果,但我不知道该如何做。有谁能帮我指点或举例吗?谢谢!
发布于 2016-06-21 06:29:49
第一步是“播放纹理上的视频”,你可能会在SO上找到一些例子。
然后,您将需要一些数学技能,以正确定位屏幕上的帧视频。一些尺度通常是需要的,至少在视频之间,除非你能保证它们都有相同的尺寸。
有些转换只是通过转换或改变精灵位置来完成的,但是如果您想要一些很好的混合,您可能需要多个纹理(视频帧样本)在同一着色器中,您需要查看“活动纹理”。
那么问题是,如果你想播放这个视频,或者你只是想用你的转换来创建一个新的视频。要播放它,您需要一个视频来实时生成样本,然后寻找其他玩家在特定时间内提供缓冲区。如果您想要创建视频,那么您需要设置一些目标FPS,用它创建示例持续时间,并在此期间查找视频帧并绘制它们。第二个需要一个FBO (一个框架缓冲对象),而不是一个表面视图,但是在这两种情况下,我建议您绘制到FBO并重新绘制纹理(附在FBO上)到表面。
这只是视频部分,所以在某个时候,您需要单独播放音频,或者在创建新视频的情况下,您需要将音频示例追加到视频中,这可以再次进行混合,但这与openGL无关。
https://stackoverflow.com/questions/37922698
复制相似问题