【问题标题】:How to rotate mp4 files?如何旋转 mp4 文件?
【发布时间】:2019-03-27 06:53:58
【问题描述】:

我有一个 mp4 文件(已录制)并想更改视频的旋转(包括元数据)。有一种方法可以使用Hex Editor 来执行此操作,您可以在其中找到轨道头(tkhdr)并将旋转矩阵替换为所需的旋转。

我知道这可以使用 ffmpeg 库来完成,但我不想使用该库,而是想在 Android 中使用 JAVA 来执行此操作。让我知道是否有人以前这样做过。

谢谢 拉维

Reference link

【问题讨论】:

    标签: java android ffmpeg rotation mp4


    【解决方案1】:

    这个库可以帮助你: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


    [编辑:来自评论]

    您可以从中提取代码:https://github.com/javadev/hexeditor 以手动修改十六进制。

    【讨论】:

    • 添加一些代码示例,以便任何人都可以轻松了解该库,而不是直接转到链接@Toaster
    • 感谢@Toaster 的回复。我认为这将创建一个新文件,而不是在同一个文件中进行更改。
    • 我的想法是从文件中获取字节数组,在该字节数组中搜索旋转属性并更改旋转。这种方法的问题是我无法从字节数组中找到旋转矩阵。
    • 我不能说任何事情都行不通。但是android支持实时文件修改吗?我还没试过。
    • @Toaster 谢谢。如果它对我有用,我会告诉你。
    猜你喜欢
    • 2013-01-29
    • 2012-03-06
    • 2021-11-21
    • 2014-03-17
    • 2020-08-22
    • 2019-12-31
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    相关资源
    最近更新 更多