Я исследовал этот вопрос повсюду, но не могу найти полезных ответов.По сути, я хочу создать полупрозрачное (или полупрозрачное) аудиореактивное наложение, которое можно транспонировать в общий видеофайл.Идея состоит в том, чтобы сделать видео похожим на пульсацию звуковой дорожки.
Я думаю, что смогу добиться этого эффекта с помощью Обработки и библиотеки 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();
}
Предположительно, этот эскиз работает, но, к сожалению, базовая библиотека processing.video
(GStreamer 1+), похоже,сбой в Ubuntu (и, похоже, нет способа обновить библиотеку с помощью одного из предоставленных сообществом форков, в соответствии с issue # 90 на GitHub.
Если кто-нибудь может предложитьспособ решить эту проблему или есть другое решение, я был бы признателен.