MP4Parser создает поврежденный mp4

Я использую mp4parser для объединения двух видео в приложении для Android, но на выходе получается файл, который я не могу воспроизвести на своем телефоне или компьютере (Windows Media Player и VLC). Это функция, которую я использую

public void MergeVideos(String[] pathsToVideos, String pathToOutput) throws IOException, InterruptedException
{
    List<Track> tracks = new LinkedList<Track>();
    Movie outputVideo = new Movie();

    for (int i = 0; i < pathsToVideos.length; i++)
    {
        Movie video = MovieCreator.build(pathsToVideos[i]);
        List<Track> trackss = video.getTracks();   
        for (Track track : trackss) 
        {
            if (track.getHandler().equals("vide"))
            {
                tracks.add(track);
            }
        }
    }

    outputVideo.addTrack(new AppendTrack(tracks.toArray(new Track[tracks.size()])));
    Container out = new DefaultMp4Builder().build(outputVideo);

    File outputFile = new File(pathToOutput);

    if(!outputFile.exists())
    {
        outputFile.createNewFile();
    }

    //write mp4 file
    FileChannel fc = new RandomAccessFile(String.format(pathToOutput), "rw").getChannel();
    out.writeContainer(fc);
    fc.close();

    //Add to the android media gallery so i can see it on my computer
    addToGallery(new File(pathToOutput));
}

person Freijlord    schedule 20.05.2015    source источник


Ответы (1)


Поскольку проблема исходила от самого MP4Parser, я перешел к FFMpeg, из которого я могу успешно комбинировать видео.

Я использовал демультиплексор и для дальнейшего использования; это команда, которую я использовал:

"ffmpeg -y -f concat -i temp.txt -c copy output.mp4"

person Freijlord    schedule 22.05.2015
comment
Печально, что Mp4Parser создает поврежденные файлы. - person Léon Pelletier; 12.06.2015