midiファイルのノートに変更するビデオを作成したいとします。私はmidiを録音してwavとして出力しています。オーディオドリフトの問題。プログラムでビデオフレームを作成し、JavaでMIDI /オーディオと同期する
私はmidiファイルを読んで、再生されたノートに基づいて画像を作成します。私はノート間の時間を計算し、このコードでフレーム数を決定するために、これを使用しています:
for(int i = 0; i < noteImages.size(); i++) {
for(int j = 0; j < frameRate * (noteLengths.get(i)/1000); j++) {
videoFrames.add(noteImages.get(i));
frameCount++;
}
}
私は、オーディオは、このコマンドを使用して画像から動画を作成するためのffmpegを使用します。
ffmpeg -r 60 -f image2 -i pic%05d.png -itsoffset 3 -i audio.wav -c:v libx264 -c:a aac -pix_fmt yuv420p -crf 23 -r 24 -shortest -y output.mp4
オーディオは正常に起動し、徐々に同期が外れます。画像を作成するときに高いfpsを使用すると、それほど顕著ではありませんが、それを閉じるには少なくとも300fpsを使用する必要があります。どのようにこれを修正するための任意のアイデア?
メモの期間は統一されていますか? – Mulvya
2つの異なる音符の長さがあり、一方は他方の長さの2倍です。 1つは666.667ms、長いものは1333.334msです – user6688986