Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2009-08-10

Record audio from playback, JACK

Захотелось мне из кина песенку выдернуть, в смысле, получить в виде файла mp3 или вроде того. Задачка плевая, взять и с миксера записать, под виндой я вроде это делал. Почему бы и под линуксом не сделать? Благо программу Audacity уже ставил, пишет в лучшем виде.

Оказалось, что самый простой способ записать звук с софтового плеера - соединить шнурком (вполне вещественным) линейный выход звуковой карты с линейным же входом. Но мы не ищем легких путей. Я знаю, должен быть способ захватить играемый звук и записать его, чисто программными методами.

Короче, записывайте рецепт. Используем JACK.
Нам понадобится фильм, плеер для проигрывания фильма - SMPlayer, рекордер, для записи звука из фильма - Audacity, демон JACKd и его управлятор qJACKctl. Последние два - часть проекта JACK, назначение которого - соединять звуковые потоки. Все эти полезняшки находятся и ставятся командами
aptitude search what-you-need, aptitude install what-you-find.

Сначала надо запустить демона:
$ jackd -d alsa

От имени пользователя, не иначе. Возможно, понадобится запустить демона в риалтайм режиме, для этого команда будет такой:
$ jackd -R -d alsa

Но чтобы вы могли сделать это (использовать риалтайм), придется внести правки в файл
/etc/security/limits.conf
добавить строки вроде:
valik - rtprio 99
valik - memlock unlimited

Валик - это я. У вас будет учетка скорее всего другая. После этих правок надо перелогонится в систему.
Короче, демона запустили.

Теперь запускайте управлятор:
$ qjackctl &

Теперь запускайте плеер, и залезайте в его настройки:
Options-Preferences-General,
Output drivers, Audio: ставите "jack"

Теперь запускаете Audacity, в качестве источника звука выбираете "JACK Audio connection kit, system" или что-то вроде того.

Теперь самое сложное. Подгоняете источник (фильму) к месту старта отрезка, секунд за тридцать до. Ставите на play. Теперь у вас есть 30 секунд чтобы сделать следующее:
В Audacity стартануть запись, перейти в окно JACK Audio Connection Kit (то, которое появилось после запуска qJACKctl) и нажать кнопу "Connect", открыв окно коннекшенов.
В окне коннекшенов во вкладке Audio вы слева выбираете плеер (MPlayer) а справа рекордер (PortAudio) и жмете кнопу Connect. Да, перед этим надо сделать дисконнект для пары (слева-справа) System и PortAudio.
Потому как по умолчанию оно коннектится не так как нам надо.




Запись пошла, это видно по форме сигнала в аудасити. Когда надо, жмем стоп для записи, отрезаем лишнее и сохраняем.

После чего можно закрыть все эти джеки и прочие лишнии программы и вернить настройки аудио в норму. И послушать, что записалось.
У меня записалось нормально. Хотя во время записи сигнал шел с шумом. Пес его знает, откуда шум. В записи его нет.

Если я и забыл какие детали, в интернете все найдете:



А вот, и на ютубе нашлось, правда звук поносный, у меня лучше записалось.
Как в фильме:


И вариант расширенный:

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)