2016-10-10 1 views
1

Ich habe einen Job, der Videodateien dreht und schneidet. Ich trimm das Video, konnte es aber nicht drehen. Ich verwende folgendes Code-Snippet, um zu drehen, aber das Ergebnisvideo ist dasselbe mit dem Quellvideo. Auch gibt es keine Fehlermeldung. mp4parser wird Video nicht drehen

videoPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/download/cvbenim/islenecek.mp4"; 
 
try { 
 
    String rotatedPath = videoPath.replace(".mp4", "cvbenim_is_ilanı_rotated.mp4"); 
 
    Movie result = MovieCreator.build(videoPath); 
 
    File file = new File(rotatedPath); 
 
    if (file.exists()) { 
 
    file.delete(); 
 
    } 
 
    Container out = new DefaultMp4Builder().build(result); 
 
    MovieHeaderBox mvhd = Path.getPath(out, "moov/mvhd"); 
 
    mvhd.setMatrix(Matrix.ROTATE_90); 
 
    out.writeContainer(new FileOutputStream(rotatedPath).getChannel()); 
 
    playVideoFromPath(rotatedPath); 
 
} catch (Exception e) { 
 
    e.printStackTrace(); 
 
}

appriciate ich Hilfe.

Antwort

0

Sie geben nicht an, wie Sie Ihr Video in playVideoFromPath darstellen, aber wie https://stackoverflow.com/a/17395134/3233251 sagt.

Wenn Sie das Video auf Android mithilfe des VideoView wiedergeben, stellen Sie möglicherweise fest, dass die Matrix nicht berücksichtigt wird. Ich bin mir nicht ganz sicher, ob dies mit Absicht geschieht oder nicht, aber die Problemumgehung besteht darin, eine TextureView zu verwenden, die die Transformation anwendet.

Sie sollten versuchen, die TextureView als empfohlen zu verwenden, wenn Sie dies nicht bereits tun.

+0

Wenn ich das Ergebnisvideo auf dem Desktop wiedergeben, wird das Video nicht gedreht –