Como fazer com que o vídeo capturado pela câmera frontal não seja o inverso do Android?

Gravar vídeo usando o MediaRecorder. Ao usar a câmera traseira, ele funciona bem, mas ao usar a câmera frontal, o vídeo capturado está sendo invertido / inverso. Significa que o item à direita aparecerá no lado esquerdo. A visualização da câmera está funcionando bem , apenas o vídeo final capturado invertido.

Aqui está a visualização da câmera

Mas o vídeo final aparece assim(todo o item no lado esquerdo, aparece no lado direito)

O que eu tentei até agora:

Eu tentei aplicar omatrix quando preparar gravador, mas parece que muda alguma coisa.

private boolean prepareRecorder(int cameraId){

    //# Create a new instance of MediaRecorder
    mRecorder = new MediaRecorder();

    setCameraDisplayOrientation(this,cameraId,mCamera);
    int angle = getVideoOrientationAngle(this,cameraId);
    mRecorder.setOrientationHint(angle);

    if(cameraId == Camera.CameraInfo.CAMERA_FACING_FRONT){
        Matrix matrix = new Matrix();
        matrix.preScale(1.0f,-1.0f);
    }

    //all other code to prepare recorder here
  }

Já li todas as perguntas abaixo, mas tudo isso parece não ter resolvido meu problema. Para obter informações, estou usandoSurfaceView para a visualização da câmera, então essa pergunta aqui não ajuda.

1)Android flip espelho da câmera frontal capotou vídeo

2)Como impedir que o Android inverta a imagem da câmera frontal?

3)Evite virar a câmera frontal

Então, minha pergunta é:

1) Como capturar um vídeo pela câmera frontal que não está sendo inverso (exatamente o mesmo com a visualização da câmera)?

2) Como conseguir isso quando a visualização da câmera está usandoSurfaceView mas nãoTextureView ? (faça toda a pergunta que mencionei acima, conte sobre o usoTextureView)

Todas as soluções possíveis são bem-vindas.

EDITAR

Fiz 2 vídeos curtos para esclarecer o problema, faça o download e dê uma olhada

1)O vídeo durante a visualização da câmera na gravação

2)O vídeo do produto final da gravação

questionAnswers(1)

yourAnswerToTheQuestion