1

我正在制作一个项目,其单一目标是将 2 个 .mp4 文件转换为一个文件。为此,我将文件转换为 2 字节 [] 并将其转换为单个文件,但是当我对其进行处理BufferedOutputStream时,它仅保留一个文件的内容,同时占用与两者组合相同的内存空间。有我正在使用的代码:

public byte[] whole(){
        Array<byte[]> fs = filme();
        Array<Byte> bb = new Array<Byte>();
        for(byte[] b : fs){
            for(int i = 0; i<b.length; i++){
                bb.add(b[i]);
            }
        }
        byte[] whl = new byte[bb.size];

        for(int i = 0; i<whl.length; i++){

              whl[i] = bb.get(i);
    }

    return whl;
}

这部分代码将字节数组列表转换为单字节数组。如果您测试并将字节数组拆分为两个长度与两个初始文件相同的文件,它会生成相同的两个开始文件,与之前完全相同。

public FilmFile transform(byte[] go, String path) throws IOException{
    FileOutputStream out = new FileOutputStream(path);
    bos = new BufferedOutputStream(out);
    bos.write(go);
    FilmFile f = new FilmFile(path);
    return f;

}

此代码将前面提到的将两个文件组合成一个 mp4 文件的字节数组转换,但它占用了两个文件的空间,并且只显示 onde 视频。一些信息,以获取有关我正在使用 JCODEC 的电影的信息,并且该项目处于 gradle 中。这是 FilmFile 代码: https ://docs.google.com/document/d/1IHdG3gDeRmKXwRT2LJbsC5zI7K5kP4kuNAwMjCh7wII/edit?usp=sharing 感谢您的帮助,抱歉英语不好。

4

0 回答 0