Java 如何旋转mp4文件?
我有一个mp4文件(已经录制),想更改视频的旋转(包括元数据)。有一种方法可以做到这一点,即在何处找到轨迹标头(tkhdr),并用所需的旋转替换旋转矩阵 我知道这可以使用ffmpeg库来完成,但我不想使用该库,而是想在Android中使用JAVA来完成。如果以前有人这样做过,请告诉我 谢谢 拉维Java 如何旋转mp4文件?,java,android,ffmpeg,rotation,mp4,Java,Android,Ffmpeg,Rotation,Mp4,我有一个mp4文件(已经录制),想更改视频的旋转(包括元数据)。有一种方法可以做到这一点,即在何处找到轨迹标头(tkhdr),并用所需的旋转替换旋转矩阵 我知道这可以使用ffmpeg库来完成,但我不想使用该库,而是想在Android中使用JAVA来完成。如果以前有人这样做过,请告诉我 谢谢 拉维 此库可以帮助您: 该库使用Android MediaCodec API生成Mp4电影,并可以旋转Mp4 StackOverflow参考: 它的API流畅且简单: new Mp4Composer(sou
此库可以帮助您: 该库使用Android MediaCodec API生成Mp4电影,并可以旋转Mp4 StackOverflow参考:
它的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编写的:
[编辑:来自评论]:
您可以从此中提取代码:手动修改十六进制。此库可能会帮助您: 该库使用Android MediaCodec API生成Mp4电影,并可以旋转Mp4 StackOverflow参考:
它的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编写的:
[编辑:来自评论]:
您可以从中提取代码:手动修改十六进制。添加一些代码示例,以便任何人都可以轻松了解该库,而不是直接访问link@toasterthanking@Toaster以获得答复。我认为这将创建一个新文件,而不是在同一个文件中进行更改。我的想法是从文件中获取字节数组,搜索该字节数组中的旋转属性并更改旋转。这种方法的问题是我无法从字节数组中找到旋转矩阵。我不能说任何东西都不起作用。但是android支持实时文件修改吗?“我还没试过。”多谢。我会让你知道它是否适合我。添加一些代码示例,以便任何人都可以轻松了解该库,而不是直接访问链接@ToasterThank@Toaster获得你的答复。我认为这将创建一个新文件,而不是在同一个文件中进行更改。我的想法是从文件中获取字节数组,搜索该字节数组中的旋转属性并更改旋转。这种方法的问题是我无法从字节数组中找到旋转矩阵。我不能说任何东西都不起作用。但是android支持实时文件修改吗?“我还没试过。”多谢。如果对我有效,我会让你知道的。