如何加入一个音频和video文件 – Xuggler

我想使用Xuggler将video文件(flv)与无音频和音频文件(mp3)结合。 目前我已经采用了两个流,并将这些流的video和音频部分分开组合,如同图片一样。 现在我想将音频和video文件相互结合..任何建议或提示将不胜感激。 我正在使用red5服务器。 谢谢。

使用MediaConcatenator。 请参阅示例代码“连接音频和video”

我开发了一个类,它将采用两个输入,一个音频文件和第二个video文件,并将它们合并为一个音频video文件。

  public static void main(String[] args) { String filenamevideo = "f:/testvidfol/video.mp4"; //video file on your disk String filenameaudio = "f:/testvidfol/audio.wav"; //audio file on your disk IMediaWriter mWriter = ToolFactory.makeWriter("f:/testvidfol/videowriter.flv"); //output file IContainer containerVideo = IContainer.make(); IContainer containerAudio = IContainer.make(); if (containerVideo.open(filenamevideo, IContainer.Type.READ, null) < 0) throw new IllegalArgumentException("Cant find " + filenamevideo); if (containerAudio.open(filenameaudio, IContainer.Type.READ, null) < 0) throw new IllegalArgumentException("Cant find " + filenameaudio); int numStreamVideo = containerVideo.getNumStreams(); int numStreamAudio = containerAudio.getNumStreams(); System.out.println("Number of video streams: "+numStreamVideo + "\n" + "Number of audio streams: "+numStreamAudio ); int videostreamt = -1; //this is the video stream id int audiostreamt = -1; IStreamCoder videocoder = null; for(int i=0; i= 0 || containerAudio.readNextPacket(packetaudio) >= 0){ if(packetvideo.getStreamIndex() == videostreamt){ //video packet IVideoPicture picture = IVideoPicture.make(videocoder.getPixelType(), videocoder.getWidth(), videocoder.getHeight()); int offset = 0; while (offset < packetvideo.getSize()){ int bytesDecoded = videocoder.decodeVideo(picture, packetvideo, offset); if(bytesDecoded < 0) throw new RuntimeException("bytesDecoded not working"); offset += bytesDecoded; if(picture.isComplete()){ System.out.println(picture.getPixelType()); mWriter.encodeVideo(1, picture); } } } if(packetaudio.getStreamIndex() == audiostreamt){ //audio packet IAudioSamples samples = IAudioSamples.make(512, audioCoder.getChannels(), IAudioSamples.Format.FMT_S32); int offset = 0; while(offset 

希望它会对你有所帮助。