
Я создал визуализацию музыки с помощью Processing. Теперь я хочу преобразовать ее в видео, и наименее навязчивый способ, который я смог придумать, — это записать скринкаст.
Я решил, что экспорт Processing в видео, включая аудио, из самого Processing на Ubuntu, кажется нерешенной проблемой. Очень сложно и также может вызвать проблемы синхронизации времени (поскольку музыка продолжает звучать, пока захватываются изображения). Так что перейдем к методу скринкаста.
Я думал, это очень просто. Но я ошибался. Первым препятствием было найти способ записать звук с аудио (а не с микрофона).
Я нашел учебник по этому вопросу.здесь.
Короче говоря: используйте gtk-recordmydesktop
и pulse audio
. Точно:
- запустить PulseAudio
- запустите gtk-recordmydesktop и установите вход с DEFAULT на pulse
- начать запись
- см. вкладку «Запись» в PulseAudio и выбранный «Внутренний звук» (или «Монитор»)
Это работает, если я записываю, например, из моего веб-браузера, воспроизводящего фильм на YouTube. Я вижу, что это появляется на вкладке PlayBack, и могу легко записать его. Но не для Processing. Processing написан на Java. Processing не использует ALSA, а использует аппаратные устройства напрямую для создания звуков. Когда звук воспроизводится, он не появляется в микшере Pulse Audio.
Как мне теперь записать звук?
решение1
Решение по ссылке, кажется, работает отлично (если я правильно понял, о чем вы спросили). Даже не пришлось менять конфигурацию, gtk-recordmydesktop
чтобы это заработало.
Вам не нужно ничего менять в pavucontrol
разделе «Обработка», так как он не будет отображаться на вкладке «Запись». Вам нужно изменить настройки, gtk-recordmydesktop
чтобы записывать системные звуки.
Вот короткое видео о том,как я это сделал.
Пожалуйста, не жалуйтесь на музыку, моим соседям она нравится! ;)
(по крайней мере, они продолжают стучать от радости по стенам каждый раз, когда я включаю их на полную громкость)
решение2
Я обнаружил, что java не использует ALSA, а напрямую обращается к аудиоустройствам. Фактически делая Pulse Audio бесполезным, и таким образом лишая меня возможности возвращать аудио на вход для записи. Это оказалось очень трудно обойти.дальнейшее чтениеузнал, что это может быть связано с используемым JDK. Так как же это обойти?
Обработка использует java. Но когда java запущена в браузере, онаделаетиспользуйте ALSA. Каким-то образом браузер-контейнер обрабатывает это правильно для вас.
Итак, простое решение: экспортируйте свой набросок обработки в апплет, запустите апплет в браузере и запишите! :)
Надеюсь, это поможет и кому-то еще.
решение3
Alsaloop никогда... НИКОГДА... меня не подводил. Да, последний раз, когда я проверял, требовался специальный пакет