私のプログラムは、WAVファイルにマイクの音声を録音しながら、AVIファイルにスクリーンキャプチャビデオを行っています。完成したら、2つを1つのファイルにまとめる(基本的にWAVファイルをオーディオとしてビデオに追加する)。AVIとWAVファイルをクライアントサイドのJAVAだけで結合する方法は?
は、私は次のコードでキャプチャ画面を行う(ScreenRecorderクラスはorg.monte.screenrecorderからです):私はあなたがすべての形式を見ることができます(このようにそれを行うオーディオ録音のために
GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().
getDefaultScreenDevice().getDefaultConfiguration();
Format fileFormat = new Format(MediaTypeKey, MediaType.FILE, MimeTypeKey, MIME_AVI);
Format screenFormat = new Format(MediaTypeKey, MediaType.VIDEO,
EncodingKey, ENCODING_AVI_MJPG,
CompressorNameKey, ENCODING_AVI_MJPG,
DepthKey, (int)24,
FrameRateKey, Rational.valueOf(15),
QualityKey, 1.0f,
KeyFrameIntervalKey, (int) (15 * 60));
Format mouseFormat = new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey,"black",
FrameRateKey, Rational.valueOf(30));
screenRecorder = new ScreenRecorder(gc, fileFormat, screenFormat, mouseFormat, null);
、パラメータ等) JMF(javax.media.Manager、それはcreateRealizedProcessorで死ぬ) Xuggle(com.xuggle.mediatoolとcom.xuggle:
float sampleRate = 44100;
int sampleSizeInBits = 16;
int channels = 2;
boolean signed = true;
boolean bigEndian = true;
AudioFormat format new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
// checks if system supports the data line
if (!AudioSystem.isLineSupported(info)) {
System.out.println("Line not supported");
System.exit(0);
}
line = (TargetDataLine) AudioSystem.getLine(info);
line.open(format);
line.start(); // start capturing
System.out.println("Start capturing...");
AudioInputStream ais = new AudioInputStream(line);
System.out.println("Start recording...");
// start recording
AudioSystem.write(ais, fileType, wavFile);
私は無駄に以下の溶液を、試みました。 xuggler)
入力形式が気に入らないために機能しないと確信しています。
はい、私は簡単にコマンドラインまたはサーバー上でFFMPEGでマージできますが、それは私にとっては良くないです、私はクライアント側のJAVAソリューションが必要です(私は本当にFFMPEGをインストールするようにユーザーに頼むことはできませんRuntime.getRuntime()。execなどで呼び出すことができます。
ありがとう、私はこれを試してみましょう! – KBalazs