Android mp4parser видео добавляет результат продолжительностью 00:00

привет всем, я пытаюсь добавить два видео в Android, используя mp4parser, но проблема в том, что результирующее видео имеет продолжительность 00:00, хотя оно занимает размер видео1 + видео2, оба видео сняты с одной и той же задней камеры одного и того же телефона с точно та же кодировка, поэтому encoding не проблема. я уже просмотрел образцы, указанные на официальном сайте mp4parser, и это почти тот же код, но, похоже, есть что-то еще, заранее спасибо, вот мой код

private void appendVideos() throws IOException
    {
        String f1 = Environment.getExternalStorageDirectory() + "/video1.mp4";
        String f2 = Environment.getExternalStorageDirectory()+ "/video2.mp4";

        Movie[] inMovies;

        inMovies = new Movie[]
                {
                MovieCreator.build(f1),
                MovieCreator.build(f2),
                };


        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()])));
        }

        Container out = new DefaultMp4Builder().build(result);

        RandomAccessFile ram = new RandomAccessFile(String.format(Environment.getExternalStorageDirectory() + "/output.mp4"), "rw");
        FileChannel fc = ram.getChannel();
        out.writeContainer(fc);
        ram.close();
        fc.close();
        Toast.makeText(getApplicationContext(), "success", Toast.LENGTH_SHORT).show();
    }

person Khurram Shehzad    schedule 10.02.2014    source источник
comment
@Sebastian Annies не могли бы вы мне помочь???   -  person Khurram Shehzad    schedule 11.02.2014


Ответы (1)


Он отлично работает со мной.

Просто сделайте это одно изменение, и ваш код будет работать нормально.

Замените isoparser-1.0-RC-37.jar на isoparser-1.0-RC-27.jar в папке lib.

Загрузите файл isoparser-1.0-RC-27.jar по ссылке ниже. http://grepcode.com/snapshot/repo1.maven.org/maven2/com.googlecode.mp4parser/isoparser/1.0-RC-27

person Sukumar    schedule 07.10.2014