视频剪辑过渡效果
video clip transition effects
我正在尝试使用 MediaCodec API 将视频剪辑组合在一起。借助解码器,MediaMuxer,我可以将视频剪辑组合在一起,但每个剪辑之间的过渡似乎太单调了。我想在每个剪辑之间添加一些过渡效果,例如 GoPro Quik(具有漂亮的过渡效果)。据我所知,Opengl着色器可以制作过渡效果,但我不知道该怎么做。谁能帮我提供一些指导或例子?
谢谢!
第一步是 "playing a video on the texture",您可以在 SO 上找到很多示例。
然后您将需要一些数学技能来正确定位屏幕上带有帧的视频。通常至少在视频之间需要一定比例,除非您可以保证它们都具有相同的尺寸。
一些过渡只是通过变换或改变精灵位置来完成,但如果你想要一些很好的混合,你可能需要在同一个着色器中使用多个纹理(视频帧样本),你需要查看 "active texture".
那么问题是您是要播放视频还是只想使用过渡创建新视频。要播放它,您需要一个视频来实时生成样本,然后寻求其他播放器在特定持续时间内提供缓冲。如果你想创建视频,那么你需要设置一些目标 FPS,你可以用它来创建样本持续时间,并在该持续时间寻找视频帧并绘制它们。第二个需要一个 FBO(一个帧缓冲对象)而不是一个表面视图,但在这两种情况下我建议你绘制到 FBO 并将纹理(附加到 FBO)重新绘制到表面。
这只是视频部分,所以在某些时候您需要单独播放音频,或者在创建新视频的情况下,您需要将音频样本附加到视频中,视频可以再次进行一些混合,但是与 openGL 无关。
我正在尝试使用 MediaCodec API 将视频剪辑组合在一起。借助解码器,MediaMuxer,我可以将视频剪辑组合在一起,但每个剪辑之间的过渡似乎太单调了。我想在每个剪辑之间添加一些过渡效果,例如 GoPro Quik(具有漂亮的过渡效果)。据我所知,Opengl着色器可以制作过渡效果,但我不知道该怎么做。谁能帮我提供一些指导或例子? 谢谢!
第一步是 "playing a video on the texture",您可以在 SO 上找到很多示例。
然后您将需要一些数学技能来正确定位屏幕上带有帧的视频。通常至少在视频之间需要一定比例,除非您可以保证它们都具有相同的尺寸。
一些过渡只是通过变换或改变精灵位置来完成,但如果你想要一些很好的混合,你可能需要在同一个着色器中使用多个纹理(视频帧样本),你需要查看 "active texture".
那么问题是您是要播放视频还是只想使用过渡创建新视频。要播放它,您需要一个视频来实时生成样本,然后寻求其他播放器在特定持续时间内提供缓冲。如果你想创建视频,那么你需要设置一些目标 FPS,你可以用它来创建样本持续时间,并在该持续时间寻找视频帧并绘制它们。第二个需要一个 FBO(一个帧缓冲对象)而不是一个表面视图,但在这两种情况下我建议你绘制到 FBO 并将纹理(附加到 FBO)重新绘制到表面。
这只是视频部分,所以在某些时候您需要单独播放音频,或者在创建新视频的情况下,您需要将音频样本附加到视频中,视频可以再次进行一些混合,但是与 openGL 无关。