美文网首页
通过opengl着色器修改本地MP4视频播放时的饱和度

通过opengl着色器修改本地MP4视频播放时的饱和度

作者: vb12 | 来源:发表于2018-10-15 22:01 被阅读53次

    先看效果图


    image.png image.png

    目的

    折腾了两天才知道, 播放视频的opengl做法和摄像头浏览的处理是一样的. 甚至render类的代码都不需要修改.
    实现了这一小步, 我就更有信心下一步了.
    最终目的还是能够实现跟抖音本地视频编辑一样的效果. 当然最理想的情况就是能够不使用FFmpeg的情况下, 加特效, 裁剪, 合成, 压缩视频.

    下一步应该是裁剪了.

    实现

    1. 通过MediaPlayer播放视频, 当然最终的目标是自己通过MediaCodec对音视频解码播放, 但是这里只是为了演示opengl的特效实现, 所以使用MediaPlayer足够了.

    2. 展示是一个普通的GLSurfaceView .

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:keepScreenOn="true">
    
        <android.opengl.GLSurfaceView
            android:id="@+id/glsurfaceview"
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true" />
    
    ....
    </RelativeLayout>
    
    1. opengl着色器相关内容仍然和前一篇一样. 不列出了. 具体看demo吧.

    2. 千万别忘这句话, 浪费了2个小时
      surfaceView.setEGLContextClientVersion(2)

    代码地址: https://github.com/shaopx/opengl_video_effect_demo

    相关文章

      网友评论

          本文标题:通过opengl着色器修改本地MP4视频播放时的饱和度

          本文链接:https://www.haomeiwen.com/subject/jnbqzftx.html