私はこの質問を広範囲に調査しましたが、有用な答えが見つかりません。基本的に、一般的なビデオ ファイルに変換できる半透明 (または半透明) のオーディオ反応オーバーレイを作成したいと考えています。アイデアは、ビデオにオーディオ トラックで脈動するように見せることです。
Processing と minim ライブラリでこの効果を実現できると思いますが、スケッチの定式化の方法がわかりません。出力は 1920x1080 で、脈動するオーバーレイは鮮やかな明るさ (たとえば、明るさ 30 ~ 50%、不透明度 25 ~ 50% の明るい色) を生成する必要があります。
@george-profenza から提供されたスケッチを使用して、この課題を更新しています (カム入力の代わりにビデオを使用するように変更しています)。
import processing.video.*;
Movie movie;
PGraphics overlay;
import ddf.minim.*;
Minim minim;
AudioInput in;
void setup(){
size(320,240);
movie = new Movie(this, "input.mp4");
movie.play();
// setup sound
minim = new Minim(this);
in = minim.getLineIn();
// setup overlay
overlay = createGraphics(width,height);
// initial draw attributes
overlay.beginDraw();
overlay.strokeWeight(3);
overlay.rectMode(CENTER);
overlay.noFill();
overlay.stroke(255,255,255,32);
overlay.endDraw();
}
void draw(){
//update overlay based on audio data
overlay.beginDraw();
overlay.background(0,0);
for(int i = 0; i < in.bufferSize() - 1; i++)
{
overlay.line( i, 50 + in.left.get(i)*50, i+1, 50 + in.left.get(i+1)*50 );
overlay.line( i, 150 + in.right.get(i)*50, i+1, 150 + in.right.get(i+1)*50 );
}
overlay.endDraw();
//render video then overlay composite
image(movie,0,0);
image(overlay,0,0);
}
// update movie
void movieEvent(Movie m){
m.read();
}
おそらくこのスケッチは機能しますが、残念ながら、基礎となる(GStreamer 1+) ライブラリは Ubuntu で誤動作しているようです (問題 #90processing.video
によると、コミュニティが提供するフォークの 1 つを使用してライブラリを更新する方法はないようです)。GitHub で。
誰かがこの問題を解決する方法を提案したり、別の解決策を持っている場合は、感謝します.