gpt4 book ai didi

audio - 从处理中导出视频3

转载 作者:行者123 更新时间:2023-12-03 01:50:03 25 4
gpt4 key购买 nike

我正在使用3.2.2处理音频可视化。我有播放可视化工具的代码,但是我不知道如何将其另存为video(.mp4)文件。

这是我写的:

import ddf.minim.*;
import ddf.minim.analysis.*;

Minim minim;
AudioPlayer player;
AudioMetaData meta;
BeatDetect beat;
int r = 200;
float rad = 70;
void setup()
{
size(500, 500);
//size(600, 400);
minim = new Minim(this);
player = minim.loadFile("son_final.mp3");
meta = player.getMetaData();
beat = new BeatDetect();
player.play();
//player.play();
background(-1);
noCursor();
}

void draw()
{
float t = map(mouseX, 0, width, 0, 1);
beat.detect(player.mix);
fill(#1A1F18,50);
noStroke();
rect(0, 0, width, height);
translate(width/2, height/2);
noFill();
fill(-2, 10);
if (beat.isOnset()) rad = rad*0.9;
else rad = 70;
ellipse(0, 0, 2*rad, 2*rad);
stroke(-1, 50);
int bsize = player.bufferSize();
for (int i = 0; i < bsize - 1; i+=5)
{
float x = (r)*cos(i*2*PI/bsize);
float y = (r)*sin(i*2*PI/bsize);
float x2 = (r + player.left.get(i)*100)*cos(i*2*PI/bsize);
float y2 = (r + player.left.get(i)*100)*sin(i*2*PI/bsize);
line(x, y, x2, y2);
}
beginShape();
noFill();
stroke(-1, 50);
for (int i = 0; i < bsize; i+=30)
{
float x2 = (r + player.left.get(i)*100)*cos(i*2*PI/bsize);
float y2 = (r + player.left.get(i)*100)*sin(i*2*PI/bsize);
vertex(x2, y2);
pushStyle();
stroke(-5);
strokeWeight(2);
point(x2, y2);
popStyle();
}
endShape();
if (flag) showMeta();
}


void showMeta() {
int time = meta.length();
textSize(50);
textAlign(CENTER);
text( (int)(time/1000-millis()/1000)/60 + ":"+ (time/1000-millis()/1000)%60, -7, 21);
}

boolean flag =false;
void mousePressed() {
if (dist(mouseX, mouseY, width/2, height/2)<150) flag =!flag;
}

void keyPressed() {
if(key=='e')exit();
}

我知道我可以导入MovieMaker库,但是我不知道如何在此代码中使用它。请提出一些建议。

谢谢。

最佳答案

您可以为此使用视频导出库。更多信息在这里:http://funprogramming.org/VideoExport-for-Processing/

然后,您要做的就是创建VideoExport的实例,然后在videoExport.saveFrame()函数的末尾调用draw()

import com.hamoid.*;

VideoExport videoExport;

void setup() {
size(600, 600);

videoExport = new VideoExport(this, "basic.mp4");
}
void draw() {
background(#224488);
rect(frameCount * frameCount % width, 0, 40, height);

videoExport.saveFrame();
}

在线上有大量资源。我建议谷歌搜索“处理视频导出”以获得大量结果。然后尝试一些操作,并发布一个 MCVE(而不是整个项目),以显示您的确切位置。

关于audio - 从处理中导出视频3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40426760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com