#! /bin/bash #NC imcp.ba@free.fr IMCP Blandy Alain #VERSION CLIENT audiotrousperdu.sh DU 1697961599 # 22/10/2023 07:59:59 UTC # CE PROGRAMME audiotrousperdu.sh EST DESTINE A DISCUTER EN MODE SONORE # PROGRAMME CLIENT POUR DISCUTION SONORE BIDIRECTIONNELLE SOUS LINUX # le serveur correspondant ne sert qu'un seul client a la fois !!! # suppose que l'on a deja charge # - le module netcat : nc # - le module sox : play rec # suppose que l'on a charge # - le module netcat : nc # verifier avec la commande : nc -h # si c'est pas le cas loader le module netcat # pour debian et suite # su # apt-get update # apt-get install netcat # ........... # verifier avec la commande : nc -h # meme procedure pour sox ........... # verifier sox -h # # regler le mixeur pour faire marcher # le petit programme suivant # " rec -t wav - | play -t wav - " # qui envois le son du micro sur le HP ... # avec un bon volume sonore sans saturer !!! # ( dans ce script un barregraphe est disponible ).... # une fois cette etape franchie ; le reste suit : # ======================================= # ======================================= # MISE EN OEUVRE PAR COPIER COLLER # # FAIRE UN CD Dans un directory approprie # ex : mkdir conference # cd conference # # OUVRIR OU CREER AVEC UN EDITEUR ./audiotrousperdu.sh # et vider la page ( tout selectionner ; supprimer ) # # AVEC VOTRE SEURFEUR DANS L ENCADRE DE COULEUR # COPIER (CTL+C) tous ce fichier source # # REVENIR dans l'editeur # FAIRE UN COLLER le (CTL+V) (ou boutton central sourie) # ET SAUVEGARDER dans ./audiotrousperdu.sh # # EN LIGNE DE COMMANDE : # RENDRE EXECUTABLE le fichier : # chmod +x ./audiotrousperdu.sh (0755) # LANCER le client ./audiotrousperdu.sh # dans des fenetres xterm ou console ALT+F1 .... separees ! # .... # ======================================= # ======================================= # parametres serveur='www.trousperdu.org'; # serveur a contacter par defaut portaudio='5001'; #port a contacter par defaut TCP # les parametres d'appel sont identifies par leur possition # un parameter indefinis ( par defaut) est represente par le caractere '!' if test "$1" != ''&& test "$1" != '!' ; then #parametre 1 serveur="$1"; # c'est le nom explicite du serveur fi; if test "$2" != ''&& test "$2" != '!' ; then #parametre 2 portaudio="$2"; # c'est le portexplicite du serveur fi; # ======================================== echo " $0 $* PROGRAMME CLIENT LINUX POUR DISCUTER EN MODE SON avec le serveur $serveur sur le port TCP $portaudio ( usage $0 $serveur $portaudio '!' : parametre par defaut ) Appel simplifie $0 "; # par convention les appel simple sous unix exec # $0 represente le path appel du script # et permet ici auto referencement du fichier script source grep '#VERSION' $0 | grep -v grep; echo; #programme while test '1' == '1'; do tty -s; # attache a une tty if test "$?" != '0' ; then break; #pour tuer tache plus ou pas attache a xterm fi; ( #groupement stdin # sleep 2; echo " MODE BIDIRECTIONNEL SIMULTANE : ENVOIS DU SON MICRO EN DIRECT Parler au micro maintenant : pour arreter CTL+C ... " 1>&2; #envois operateur local stderr #selectionne si apres le debit micro # le nombre de cannaux et le frequence echantillonnage ; # la taille du beuffeur determine aussi le decalage sonore ) !!! #modemicro=' -c 1 -r 6000 --buffer 512 ' ; # bas debit decale 1.5s (93 kb/s ) (11.7 Ko/s) #modemicro=' -c 1 -r 11025 --buffer 1024 '; # decallage 1s (172 kb/s ) (21.5 Ko/s) modemicro=' -c 1 -r 11025 '; # decallage 2s (172 kb/s ) (21.5 Ko/s) #modemicro=' -c 1 '; # decale 1s 44100 * 2 * 8 (689 kb/s ) (86.1 Ko/s) #rec -t wav - ; # envois du micro local : ca c'est portable # --buffer ne marche pas partout # --ignore-length non plus rec $modemicro -t wav - ; # envois du micro local parametre # sur le stdin de nc local( stdout nc distant) # une barre graphe sur micro est visualiser ############################################################# #### RQ vous pouvez tester vos parametres locaux micro #### avec la ligne de commande suvante : #### rec -t wav - | play -t wav - ############################################################# # une variante de ce programme est de lire un fichier standar wav # et de transmettre ensuite un des pipe disponible echo " FIN Enregistrement !" 1>&2; #envois operateur local stderr ) | nc $serveur $portaudio | play -t wav - 2>/dev/null # pas de vue barre reception #fin echo " PAS OU PLUS DE CONNECTION avec le serveur $serveur:$portaudio "; echo -n " Voulez vous relancer la connection (ligne vide oui) : "; read a; echo; if test "$a" != ''; then break; fi; echo " Nouvel essai .... "; done; echo " $0 $* PROGRAMME TERMINE "; # copier coller jusque ici ! # # |