2016-08-01 15 views
2

Ich versuche, das Video mit GLSurfaceView und Audio vom AudioRecord aufzunehmen. In MediaMuxer sende ich sowohl Audio- als auch Videodaten, wenn onFrameAvailable aufgerufen wird. Ich stelle die Kamera Vorschaugröße von 1280 * 720 und Vorschau auf den Vollbildmodus. Ich habe Probleme, den Rahmen auf 600 * 600 zu beschneiden. Kann mir jemand helfen, den Videoframe vor dem Kodieren auf MediaCodec und MediaMuxer zuzuschneiden.Android: Beschneiden Video während der Aufnahme mit MediaCodec und MediaMuxer

ich Hilfe von der Grafika android Demo-Code

Antwort

1

Sie müssen Probleme lösen nehme:

  1. Aufzeichnen von Video mit 600 * 600: Verwenden Sie Video-Codec mit fester Breite, Höhe. Dies ist einfach zu tun, aber es könnte sein, dass nicht alle Telefone Hardware-Codecs haben, die Sie benutzerdefinierte Auflösung unterstützt.
  2. Skalieren Sie das Video so, dass es nicht gestreckt aussieht, weil Sie das Verhältnis w/h geändert haben. Verwenden Sie die Ansichtsmatrix, die an den OpenGL-Shader mit der benötigten Skalierung übergeben wurde.
+0

Können Sie bitte elloborate den zweiten Punkt. Geben Sie ein Beispiel für die "View-Matrix an OpenGL-Shader übergeben" an. –