1

我正在尝试获取 MP4 视频中的旋转信息,我正在尝试为此使用 mp4parser 但我不确定如何获取它,我正在这样做,

IsoFile isoFile = null;
try {

    isoFile = new IsoFile(filePath);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

List<Box> boxes = isoFile.getBoxes();

for (Box box : boxes) {
    System.out.println(box);
}

输出是这个

I/System.out(23548): FileTypeBox[majorBrand=isom;minorVersion=0;compatibleBrand=isom;compatibleBrand=3gp4]
I/System.out(23548): MovieBox[]
I/System.out(23548): com.coremedia.iso.boxes.FreeBox@0
I/System.out(23548): MediaDataBox{size=7913167}

知道如何获得旋转标签值吗?

更新 1工作代码

import java.io.File;
import java.io.FileInputStream;

import android.app.Activity;
import android.os.Bundle;

import com.coremedia.iso.IsoFile;
import com.coremedia.iso.IsoTypeReader;
import com.coremedia.iso.boxes.Box;
import com.coremedia.iso.boxes.MovieBox;
import com.coremedia.iso.boxes.UserDataBox;
import com.googlecode.mp4parser.authoring.Movie;
import com.googlecode.mp4parser.authoring.container.mp4.MovieCreator;
import com.googlecode.mp4parser.util.Matrix;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String filePath = "/storage/emulated/0/test/test.mp4";
        Activity activity = (Activity) MainActivity.this;

        movie = MovieCreator.build(filePath);

        Matrix matrix = movie.getMatrix();

    }



}
4

1 回答 1

0

您需要从中获取Movie对象IsoFile或使用 读取它MovieCreator.build(),然后使用movie.getMatrix()获取矩阵的类型:Matrix.ROTATE_O, Matrix.ROTATE_90, Matrix.ROTATE_180,Matrix.ROTATE_270

String filePath = "/path/to/movie/file.mp4"
Movie movie = MovieCreator.build(new FileInputStream(new File(filePath)).getChannel());
Matrix matrix = movie.getMatrix();
于 2014-09-19T02:54:21.110 回答