我正在尝试获取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();
}
}
您需要从IsoFile
中获取Movie
对象或用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();