我希望在用户通过我的应用播放该视频时提取部分视频。播放视频时,用户可以提供开始和结束时间来剪切视频。那么有没有办法根据持续时间剪切视频并保存到SD卡?
答案 0 :(得分:0)
您可以尝试编译并将ffmpeg集成到您的项目中。我使用ffmpeg来剪切视频和音频,非常快,不需要录制。我没有在android上做过的经验,但它应该有效。在这里你有关于android的官方维基页面关于ffmpeg:
https://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20compile%20FFmpeg%20for%20Android
答案 1 :(得分:0)
我认为可以使用MP4Parser完全用java编写,可以和android一起使用,而且here是一个在java中缩短视频的例子Sebastian-annies
答案 2 :(得分: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”获得它
答案 3 :(得分:0)
使用此Android-video_trimmer库。它也支持Android 10
答案 4 :(得分:-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