4

当用户通过我的应用程序播放视频时,我想提取视频的一部分。在播放视频时,用户可以指定开始和结束持续时间来剪切视频。那么有什么方法可以根据持续时间剪切视频并保存到 SD 卡?

4

5 回答 5

0

我认为这可以使用MP4Parser来完成,它纯粹是用 java 编写的,并且可以与 android 一起使用,这里还有一个在 java 中做视频缩短的例子 作者Sebastian-annies

于 2013-11-26T02:18:47.717 回答
0

您可以尝试将 ffmpeg 编译并集成到您的项目中。我使用 ffmpeg 剪切视频和音频,速度非常快,无需录制。我没有在 android 上做这件事的经验,但它应该可以工作。这里有关于 ffmpeg 在 android 上的官方 wiki 页面:

https://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20compile%20FFmpeg%20for%20Android

于 2013-06-17T12:45:34.570 回答
0

使用这个Android-video_trimmer库。它也支持 Android 10

于 2020-07-22T15:35:12.687 回答
0

Android 使用 Mp4Parser/isoParser 修剪视频 这里是修剪视频的示例https://android.googlesource.com/platform/packages/apps/Gallery2/+/android-4.4.2_r2/src/com/android/gallery3d/ app/TrimVideo.java并且如前所述,他使用了 isoParser,你可以从“git clone https://android.googlesource.com/platform/external/mp4parser ”中获得它

于 2016-03-30T06:27:03.410 回答
-7

@Ravi --- 视频可以在 videoview 或 surfaceview android 内置类中播放。在surfaceview中,您可以启动一个线程以使用MediaRecorder从您选择的位置录制视频到您想要的位置

    MediaRecorder recorder = new MediaRecorder();
    recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
        recorder.setOutputFile("/sdcard/recordvideooutput.3gpp");
        recorder.setPreviewDisplay(mHolder.getSurface());
    recorder.prepare();

您的 mholder 是用于附加表面视图的 SurfaceHolder 支架

调用这两个方法将开始和停止录制,文件将被写入 /sdcard/recordvideooutput.3gpp

recorder.start();
recorder.stop();

使用开发者指南http://developer.android.com/reference/android/media/MediaRecorder.html

于 2012-07-19T09:35:10.467 回答