如何以编程方式在android中修剪视频的开始和结束时间?

2024-06-18

我想根据 android 中的开始和结束时间以编程方式修剪本地视频,我尝试了下面附加的一些链接,但对我来说没有用。请让我知道任何工作库或示例代码来克服这个问题?

审稿链接:

  1. Android sdk 剪切/修剪视频文件 https://stackoverflow.com/questions/11205299/android-sdk-cut-trim-video-file
  2. 如何在android中使用FFMPEG库修剪视频? https://stackoverflow.com/questions/26901935/how-to-trim-the-video-using-ffmpeg-library-in-android
  3. https://superuser.com/questions/377343/cut-part-from-video-file-from-start-position-to-end-position-with-ffmpeg https://superuser.com/questions/377343/cut-part-from-video-file-from-start-position-to-end-position-with-ffmpeg

提前致谢!


使用 FFMPEG 库来解决您的问题。感谢您的 writeminds 使 ffmpeg 在 Android 上变得简单 1.implementation 'com.writingminds:FFmpegAndroid:0.3.2'

  1. 初始化 ffmpeg

    private void setUpFFmpeg() {
    ffmpeg = FFmpeg.getInstance(context);
    
    
    try {
        ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
    
            @Override
            public void onStart() {
                Log.d("Event ", "onStart");
            }
    
            @Override
            public void onFailure() {
                Log.d("Event ", "onFailure");
            }
    
            @Override
            public void onSuccess() {
                Log.d("Event ", "onSuccess");
            }
    
            @Override
            public void onFinish() {
                Log.d("Event ", "onFinish");
    
            }
        });
    } catch (FFmpegNotSupportedException e) {
        // Handle if FFmpeg is not supported by device
    }
    }
    
  2. use FFMPEG命令 https://stackoverflow.com/a/50501220/9558451就像上面发布的@Mahesh Keshvala 一样。干得好@Mahesh

  3. then execFFmpegBinary(complexCommand);会是这样

    private void execFFmpegBinary(String[] command){
          try {
    
        ffmpeg.execute(commands, new ExecuteBinaryResponseHandler() {
    
            @Override
            public void onStart() {
                Log.d("Event ", "onStart");
            }
    
            @Override
            public void onProgress(String message) {
                Log.e("Event ", "onProgress - " + message);
    
            }
    
            @Override
            public void onFailure(String message) {
                Log.e("Event ", "onFailure - " + message);
    
            }
    
            @Override
            public void onSuccess(String message) {
                Log.e("Event ", "onSuccess - " + message);
    
            }
    
            @Override
            public void onFinish() {
                Log.e("Event ", "onFinish");
    
            }
        });
    } catch (FFmpegCommandAlreadyRunningException e) {
        // Handle if FFmpeg is already running
     }
    }
    

尝试剪切视频命令

String[] complexCommand = {"-ss", "" + startMs / 1000, "-y", "-i", inputFileAbsolutePath, "-t", "" + (endMs - startMs) / 1000, "-s", "320x240", "-r", "15", "-vcodec", "mpeg4", "-b:v", "2097152", "-b:a", "48000", "-ac", "2", "-ar", "22050", outputFileAbsolutePath};

要了解有关 ffmpeg android 的更多信息,请参阅这个链接 https://androidlearnersite.wordpress.com/2017/03/17/ffmpeg-video-editor/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式在android中修剪视频的开始和结束时间? 的相关文章

随机推荐