1

MP4Parserを使用して、単純な 3 秒のアウトロ ビデオを既存のビデオに追加しようとしていますが、何らかの理由でマージ後にビデオを再生できません。ギャラリーからビデオを再生しようとすると、悪名高い「申し訳ありませんが、このビデオは再生できません」というエラーが表示されます。誰でもこれを行うのと同じような経験がありますか? 4.4 KitKat を実行している HTC One でテストしています

MP4Parser 自体の AppendExample から取得した、.mp4 クリップを 1 つのクリップにマージする方法を次に示します。

   private void createFinalOutputVideo() {

    CameraHelper helper = new CameraHelper(this);
    File outFile = helper.getOutputMediaFile(CameraHelper.MEDIA_TYPE_VIDEO);


    try {


        Movie[] movies = new Movie[2];
        movies[0] = MovieCreator.build(mVideoPath);
        movies[1] = MovieCreator.build(mOutroPath);


        Log.d("ShareActivity", "Video 1 path " + mVideoPath);
        Log.d("ShareActivity", "Video 2 path " + mOutroPath);

        List<Track> videoTracks = new LinkedList<Track>();
        List<Track> audioTracks = new LinkedList<Track>();

        for (Movie m : movies) {
            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);

        FileChannel fc = new RandomAccessFile(String.format(outFile.getPath()), "rw").getChannel();


        out.writeContainer(fc);
        fc.close();

        Toast.makeText(this, "Merge successful! Output path is " + outFile.getAbsolutePath(), Toast.LENGTH_SHORT).show();

    } catch (IOException e) {
        e.printStackTrace();
        Toast.makeText(this, "Error merging videos!", Toast.LENGTH_SHORT).show();
    }


}

MP4Parser でこの問題が発生したことはありますか? ここでセバスチャンが声をかけてくれたら最高だ。

4

1 に答える 1

0

内部で mp4parser を使用するビデオのサイズを変更するためにhttps://github.com/hoolrory/AndroidVideoSamplesを使用しています。サンプルにはビデオのサイズを変更する方法がありますが、サウンドはありません。そこで、ビデオにトラックを追加するためにミックスを追加しました。しかし、ビデオは最後に「このビデオを再生できません」というメッセージでエラーになります。

それが何らかの形で役立つことを願っています。

于 2016-12-28T06:27:52.157 に答える