我使用 Processing 创建了一个音乐可视化。现在我想将其转换为视频,我能想到的最不费力的方式就是录制截屏视频。
我认为在 ubuntu 上从 Processing 内部将 Processing 导出为视频(包括音频)似乎是一个未解决的问题。非常困难,还可能导致时间同步问题(因为在捕获图像时音乐一直在播放)。所以继续使用屏幕录制方法。
我以为这很容易。但我错了。第一个障碍是找到一种方法来录制音频(而不是麦克风)的声音。
我确实找到了一个教程这里。
简而言之:使用gtk-recordmydesktop
和pulse audio
。确切地说:
- 启动 PulseAudio
- 启动 gtk-recordmydesktop,并将输入从 DEFAULT 设置为脉冲
- 开始录制
- 参见 PulseAudio 中的“录音”选项卡,并选择“内部音频”(或“监视器”)
如果我从我的网络浏览器播放 YouTube 电影时录制,这种方法是可行的。我看到它出现在“播放”选项卡中,然后可以轻松录制它。但对于 Processing 则不行。Processing 是用 Java 编写的。Processing 不使用 ALSA,而是直接使用硬件设备来创建声音。播放声音时,它不会出现在 Pulse Audio 混音器中。
我现在该如何录制音频?
答案1
链接中的解决方案似乎运行良好(如果我理解正确的话)。甚至不需要更改任何配置即可gtk-recordmydesktop
使其运行。
您不需要更改pavucontrol
有关处理的任何内容,因为它不会显示在录制选项卡中,您需要更改设置gtk-recordmydesktop
来捕获系统声音。
这是一个简短的视频我是如何做到的。
请不要抱怨音乐,我的邻居喜欢它!;)
(至少每次我大声播放时,他们都会继续在墙上发出欢乐的声音)
答案2
我发现 Java 不使用 ALSA,而是直接处理音频设备。这实际上使 Pulse Audio 变得无用,从而无法将音频循环回输入进行录制。这似乎很难规避。进一步阅读了解到这可能与正在使用的 JDK 有关。那么如何规避这个问题呢?
Processing 使用 Java。但是当 Java 在浏览器中运行时,它做使用 ALSA。浏览器容器会以某种方式为您正确处理。
因此,简单的解决方案是:将您的处理草图导出到小程序,在浏览器中播放小程序,然后记录!:)
我希望这也能帮助其他人。
答案3
Alsaloop 从来没有让我失望过。不过,上次我检查时,它确实需要一个自定义包