我有一个mp4文件(已录制),并且想要更改视频的旋转度(包括元数据)。有一种使用Hex Editor来执行此操作的方法,您可以在其中找到轨道头(tkhdr),并将旋转矩阵替换为所需的旋转。
我知道可以使用ffmpeg库完成此操作,但我不想使用该库,而是想在Android中使用JAVA进行此操作。让我知道之前是否有人这样做过。
谢谢 拉维
答案 0 :(得分:2)
该库可能会帮助您:https://github.com/MasayukiSuda/Mp4Composer-android
该库使用Android MediaCodec API生成Mp4电影,并且可以旋转Mp4。
StackOverflow参考:https://stackoverflow.com/a/19392712/8572503
它的API流畅易用:
new Mp4Composer(sourceFile, destinationFile)
.rotation(Rotation.ROTATION_90)
.size(1280,720) //720P
.fillMode(FillMode.PRESERVE_ASPECT_FIT)
.listener(new Mp4Composer.Listener() {
@Override
public void onProgress(double progress) {
Log.d(TAG, "onProgress = " + progress);
//or show in notification
}
@Override
public void onCompleted() {
Log.v(TAG, "onCompleted() : Destination → "+ destinationFile);
}
@Override
public void onCanceled() {
Log.d(TAG, "onCanceled");
}
@Override
public void onFailed(Exception exception) {
Log.wtf(TAG, "onFailed()", exception);
}
})
.start();
您还可以看到此代码转换器是用纯Java语言编写的:https://github.com/ypresto/android-transcoder
[编辑:来自注释] :您可以创建修改后的新文件,获取先前的文件名并将其存储到String
对象中,然后删除先前的文件并重命名新文件将文件存储到String
对象中。
您可以从以下代码中提取代码:https://github.com/javadev/hexeditor以手动修改十六进制。