本人对流媒体操作不是很熟练,那位流媒体大侠能做这样的操作。
    说明用Java实现对一个AVI文件的构造生成,可以对一个AVI文件中间插入一段视频,能够在AVI文件中插入音频信息,从而生成一个新的AVI文件。
    不是使用JMF方式。
例如: 声明一个 VideoStreamFormat类import java.io.IOException;
import java.io.RandomAccessFile;class VideoStreamFormat
{
  short bitsPerPixel;
  int colorsImportant;
  int colorsUsed;
  int compressionType;
  int headerSize;
  int height;
  int imageSize;
  short numPlanes;
  int[] palette;
  int paletteCount;
  int width;
  int xPelsPerMeter;
  int yPelsPerMeter;  public void write(RandomAccessFile paramRandomAccessFile)
    throws IOException
  {
    int i = 0;
    paramRandomAccessFile.writeBytes("strf");
    long l1 = paramRandomAccessFile.getFilePointer();
    Util.writeInt(paramRandomAccessFile, i);
    int j = this.headerSize;
    Util.writeInt(paramRandomAccessFile, j);
    int k = this.width;
    Util.writeInt(paramRandomAccessFile, k);
    int l = this.height;
    Util.writeInt(paramRandomAccessFile, l);
    int i1 = this.numPlanes;
    Util.writeShort(paramRandomAccessFile, i1);
    int i2 = this.bitsPerPixel;
    Util.writeShort(paramRandomAccessFile, i2);
    int i3 = this.compressionType;
    Util.writeInt(paramRandomAccessFile, i3);
    int i4 = this.imageSize;
    Util.writeInt(paramRandomAccessFile, i4);
    int i5 = this.xPelsPerMeter;
    Util.writeInt(paramRandomAccessFile, i5);
    int i6 = this.yPelsPerMeter;
    Util.writeInt(paramRandomAccessFile, i6);
    int i7 = this.colorsUsed;
    Util.writeInt(paramRandomAccessFile, i7);
    int i8 = this.colorsImportant;
    Util.writeInt(paramRandomAccessFile, i8);
  }
}
然后定义一个AVI的类,以 VideoStreamFormat 类基础,对AVI类做插入视频和音频的操作。
在AVI类中左如下定义public class Avi
{
  AudioStreamFormat audioStreamFormat;
  StreamHeader audioStreamHeader;
  AviHeader aviHeader;
  long er;
  int offsetCount;
  int[] offsets;
  int offsetsLen;
  int offsetsPtr;
  long offsetsStart;
  RandomAccessFile out;
  VideoStreamFormat videoStreamFormat;
  StreamHeader videoStreamHeader;  定义 public void addFrame(byte[] paramArrayOfByte, int paramInt) 方法加入图像信息。
  定义 public void addAudio(byte[] paramArrayOfByte, int paramInt) 方法加入音频信息。
  等等。
}