mp4parser- добавление видео в другом режиме
Я попробовал эту библиотеку для добавления видео - mp4parser.. он отлично работает для добавления видео в том же режиме... но я хочу добавить видео в другом режиме - замедленная съемка и видео в обычном режиме... Как мне продолжить в этом? Я пробовал ниже код для слияние видео в Vid
каталог, который работает нормально, если все видео находятся в одном режиме, но не может добавиться, если видео находятся в другом режиме.
public class MergedVideo extends AsyncTask<Void, Integer, String> {
@Override
protected void onPreExecute() {
}
;
@Override
protected String doInBackground(Void... voids) {
try {
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "Vid");
File f = new File(mediaStorageDir.getPath());
File file[] = f.listFiles();
String paths[] = new String[file.length];
Movie[] inMovies = new Movie[file.length];
for (int i = 0; i < file.length; i++) {
paths[i] = file[i].getPath();
inMovies[i] = MovieCreator.build(paths[i]);
}
List<Track> videoTracks = new LinkedList<Track>();
List<Track> audioTracks = new LinkedList<Track>();
for (Movie m : inMovies) {
for (Track t : m.getTracks()) {
if (t.getHandler().equals("soun")) {
audioTracks.add(t);
}
if (t.getHandler().equals("vide")) {
videoTracks.add(t);
}
}
}
Movie result = new Movie();
if (audioTracks.size() > 0) {
result.addTrack(new AppendTrack(audioTracks
.toArray(new Track[audioTracks.size()])));
}
if (videoTracks.size() > 0) {
result.addTrack(new AppendTrack(videoTracks
.toArray(new Track[videoTracks.size()])));
}
BasicContainer out = (BasicContainer) new DefaultMp4Builder()
.build(result);
@SuppressWarnings("resource")
FileChannel fc = new RandomAccessFile(String.format(Environment
.getExternalStorageDirectory() + "/mergedvideo.mp4"),
"rw").getChannel();
out.writeContainer(fc);
fc.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("Bhu", e.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("Bhu", e.toString());
}
String mFileName = Environment.getExternalStorageDirectory()
.getAbsolutePath();
mFileName += "/mergedvideo.mp4";
return mFileName;
}