Re: запись в файл
В сообщении от 1161868676 секунд после начала Эпохи marfa написал(а):
> KK> Просто параллельно (например из другой консоли) запустите еще один
> KK> mplayer, но который будет не воспроизводить, а записывать
> KK> поток. Т.е. выполнить команду:
>
> А нельзя сделать так, чтоб не переключаться в другую консоль, а
> воспользоваться как-нибудь уже запущенным мплеером для записи
К сожалению, уже запущенным 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?
sox не понимает URL'ы. И даже если бы понимал, то Вам все равно
пришлось бы переключится на другую консоль или иным способом получить
командную строку.
> Запуская скрипт после at
> Я получила следующий вывод:
> $ at +1 minutes </home/radioscript
>
> Try adding "echo 1024 > /proc/sys/dev/rtc/max-user-freq" to your system startup
> scripts.
>
> О чем это говорит?
Это значит что нужно выполнить от root'а такие действия:
# echo 1024 > /proc/sys/dev/rtc/max-user-freq
# echo dev.rtc.max-user-freq = 1024 >> /etc/sysctl.conf
> Не могли бы Вы написать конкретный пример работы sox с вырезанием из
> wav файла фрагмента или указать где об этом можно почитать
> на русском языке?
Про документацию на русском ничего не скажу. А пример показать могу.
$ 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' можно удалить.