Anaglyph 3d Video Player For Android -

Rating: 4.5/5 | Price: Free / $5.99 Pro

Technically, MX Player is not an anaglyph app out of the box. However, it is the most stable video engine on Android. To turn it into an anaglyph player, you must install a custom codec.

  • Why use it? MX Player handles 10-bit HEVC files and AC3 audio (Dolby Digital) better than any dedicated 3D app. If your 3D movie is 4GB or larger, use MX Player.
  • Support for anaglyph streaming:

    anaglyph, 3D, stereoscopic, red cyan, SBS video player, 3D glasses, VR, stereo player anaglyph 3d video player for android

    This is the heart of the player. The shader runs on the GPU for each pixel:

    // anaglyph.frag
    precision mediump float;
    varying vec2 vTextureCoord;
    uniform sampler2D uLeftTexture;
    uniform sampler2D uRightTexture;
    

    void main() vec4 leftPixel = texture2D(uLeftTexture, vTextureCoord); vec4 rightPixel = texture2D(uRightTexture, vTextureCoord);

    // Standard red-cyan anaglyph
    float red   = leftPixel.r;
    float green = rightPixel.g;
    float blue  = rightPixel.b;
    gl_FragColor = vec4(red, green, blue, 1.0);
    

    Optimized version with adjustable depth:

    uniform float uDepthStrength;  // 0.0 to 1.0
    

    void main() vec4 left = texture2D(uLeftTexture, vTextureCoord); vec4 right = texture2D(uRightTexture, vTextureCoord); Rating: 4

    // Depth-weighted blending
    float red   = left.r;
    float green = mix(left.g, right.g, uDepthStrength);
    float blue  = mix(left.b, right.b, uDepthStrength);
    gl_FragColor = vec4(red, green, blue, 1.0);
    

    Create test videos with known depth patterns: Why use it

    // Detect external displays for true stereoscopic output
    DisplayManager dm = (DisplayManager) getSystemService(DISPLAY_SERVICE);
    Display[] displays = dm.getDisplays();
    for (Display display : displays) 
        if ((display.getFlags() & Display.FLAG_PRESENTATION) != 0) 
            // Present anaglyph on external, original on internal
    
    private void recordAnaglyphVideo() 
        MediaCodec encoder = MediaCodec.createEncoderByType("video/avc");
        // Configure encoder with anaglyph frames from GLSurfaceView
        // Save to MP4 file