запись в файл
Здравствуйте, Константин!
Большое спасибо за ответ.
Вы пишете:
А нельзя сделать так, чтоб не переключаться в другую консоль, а
воспользоваться как-нибудь уже запущенным мплеером для записи или
использовать тот же sox?
Запуская скрипт после at
Я получила следующий вывод:
$ at +1 minutes </home/radioscript
Try adding "echo 1024 > /proc/sys/dev/rtc/max-user-freq" to your system startup
scripts.
О чем это говорит?
Не могли бы Вы написать конкретный пример работы sox с вырезанием из
wav файла фрагмента или указать где об этом можно почитать
на русском языке?
Заранее благодарна, Марфуша.
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28432; Возраст листа: 1189; Участников: 1686
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/604166
В сообщении от 1161868676 секунд после начала Эпохи marfa написал(а):
К сожалению, уже запущенным mplayer'ом воспользоваться нельзя. Разве
что делать вывод звука в Jack-сервер (Jack Audio Connection Kit), а
затем соединять его со звуковой картой, а потом еще с каким-нибудь
клиентом для записи в файл. Но намного проще параллельно запустить
другой процесс mplayer'а для записи. При этом переключатся на другую
консоль не обязательно (но так все же проще), а можно воспользоваться
возможностью переключения задач в bash. Делается это так
$ mplayer -noconsolecontrols -really-quiet url
Затем нажимаете Ctrl-Z, звук пропадает и Вы возвращаетесь обратно в
командную строку. Даете команду:
$ bg
И звук возвращается. При этом Вы остаетесь в командной строке. Когда
нужно записать поток командуете:
$ mplayer -ao pcm:file=filename.wav url
По окончанию выходите из mplayer'а как обычно. А чтобы остановить
первый запущенный процесс, который воспроизводит поток даете команду:
$ kill %1
sox не понимает URL'ы. И даже если бы понимал, то Вам все равно
пришлось бы переключится на другую консоль или иным способом получить
командную строку.
Это значит что нужно выполнить от root'а такие действия:
# echo 1024 > /proc/sys/dev/rtc/max-user-freq
# echo dev.rtc.max-user-freq = 1024 >> /etc/sysctl.conf
Про документацию на русском ничего не скажу. А пример показать могу.
$ sox входной_файл.wav выходной_файл.wav trim 00:07 00:03
Эта команда запишет в `выходной_файл.wav' фрагмент из
`входной_файл.wav' начинающийся с позиции 7 секунд и имеющий
продолжительность 3 секунды.
А удаление шума делается примерно так (поправьте если где-то ошибусь):
$ sox входной_файл.wav /dev/null trim 00:00 00:02 noiseprof профиль.noise
$ sox входной_файлwav выходной_файл.wav noisered профиль.noise
Здесь `00:00 00:02' означает фрагмент во входном файле, который содержит
только шум. По окончанию `профиль.noise' можно удалить.