| |||||||||||||||||||||
Ключевые слова: sound, (найти похожие документы)
Date: Mon, 14 Oct 2002 19:15:40 +0600 From: Konstantin Boshnyaga <Konstantin_Boshnyaga@f118.n469.z2.fidonet.org> Newsgroups: ftn.ru.unix.bsd Subject: Пример программы для записи звука с звуковой карты SB> Hеобходимо производить запись звука со входа звуковой платы, SB> складывать в файлы по 1 часу и хранить в течении 2-х SB> месяцев. Качество не важно. Пока необходимо писать два SB> источника, так что одного стерео канала хватит. Что из ПО SB> посоветуете? Пожелания: -давить в SB> MP3 -консольность -возможность записи каждого канала в SB> отдельный канал когда-то делал такое для записи fm эфира. схема была такая: 1. самопальная прога читающая из /dev/dsp и пихающая на stdout 2. кодер mp3 читающий с stdin и выплевываюший в файло. далее по крону каждый час запускался скрипт: record 3600 | encode -m m -l 3 -s 32 -b 64 - //mp3/{$day}/{$hour}.mp3 в качестве 64Kbps успевало все кОдит(Pii-300). Это было 2-3 года назад, еще под 2.2.6 работало. Может сегодня можно сделать как-то по-современному. прога такая: record.c #include <stdio.h> #include <machine/soundcard.h> FILE *f,*out; main(argc,argv) int argc; char **argv; { int i; time_t howlong,when; unsigned char buf[BUFSIZ]; snd_chan_param p; f=fopen("/dev/dsp","r"); if (f==NULL) { perror("open audio dev"); exit(1); } p.play_rate=32000; p.rec_rate=32000; p.play_format=AFMT_U8;// p.rec_format=AFMT_S16_LE;//16_LE; //16_BE;// U16_BE; if(ioctl(fileno(f),AIOSFMT,&p)<0) { perror("set format:"); exit(1); } howlong=atoi(argv[1]); when=time(NULL)+howlong; do { fwrite(buf,sizeof(unsigned char),fread(buf,sizeof(unsigned char),BUFSIZ,f),s tdout); } while(time(NULL)<when); }
| |||||||||||||||||||||
| Обсуждение | [ RSS ] |
| ||||||||||||||||||||||||
| Добавить комментарий |