Android MP4Parser 无法播放视频

Posted

技术标签:

【中文标题】Android MP4Parser 无法播放视频【英文标题】:Android MP4Parser cannot play video 【发布时间】:2014-12-29 18:07:48 【问题描述】:

我正在尝试使用 MP4Parser 将一个简单的 3 秒结尾视频附加到现有视频,但由于某种原因,我无法在合并后播放视频。尝试播放我的画廊中的视频时,我收到了臭名昭著的“抱歉,无法播放此视频”错误。有人有类似的经验吗?我正在运行 4.4 KitKat 的 HTC One 上进行测试

这是我将 .mp4 剪辑合并为一个剪辑的方法,取自 MP4Parser 本身的 AppendExample。

   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 的这个问题吗?如果塞巴斯蒂安能在这里插话就好了。

【问题讨论】:

【参考方案1】:

我一直在使用https://github.com/hoolrory/androidVideoSamples 调整内部使用 mp4parser 的视频大小。样本可以调整视频大小,但不会有声音。所以我添加了一个混音来将曲目添加到视频中。但随后视频将在最后出现“无法播放此视频”消息错误。

希望在某些方面有所帮助。

【讨论】:

以上是关于Android MP4Parser 无法播放视频的主要内容,如果未能解决你的问题,请参考以下文章

音视频转码合成

音视频转码合成

揭秘盒马鲜生 Android 短视频秒播优化方案

音视频转码后合成的一些例子

EasyNVR播hls格式视频无法全屏自适应播放如何调节?

【Android音视频】视频开发优化