1

私はこの質問を広範囲に調査しましたが、有用な答えが見つかりません。基本的に、一般的なビデオ ファイルに変換できる半透明 (または半透明) のオーディオ反応オーバーレイを作成したいと考えています。アイデアは、ビデオにオーディオ トラックで脈動するように見せることです。

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 で。

誰かがこの問題を解決する方法を提案したり、別の解決策を持っている場合は、感謝します.

4

2 に答える 2