Ajout option --ice_buffer

This commit is contained in:
Doug Le Tough 2019-08-27 19:18:30 +11:00
parent 00cc430885
commit 6421925b20
1 changed files with 15 additions and 13 deletions

View File

@ -46,25 +46,26 @@ def push_ogg(ogg_file):
icecast.mount = args.mount
icecast.protocol = args.protocol
icecast.format = 'ogg'
print("Connecting to {}://{}:{}/{}".format(args.protocol, args.host, args.port, args.mount))
print("Connexion au serveur {}://{}:{} {}".format(args.protocol, args.host, args.port, args.mount))
print("Taille du tampon: {} octets".format(args.ice_buffer))
icecast.open()
with open(ogg_file, 'rb') as ogg:
total = 0
if args.debug:
print("- Reading 4096 bytes")
new_buff = ogg.read(4096)
print("- Lecture de {} octets".format(args.ice_buffer))
new_buff = ogg.read(args.ice_buffer)
while True:
cur_buff = new_buff
if args.debug:
print("- Reading next 4096 bytes")
new_buff = ogg.read(4096)
print("- Lecture des {} octets suivants".format(args.ice_buffer))
new_buff = ogg.read(args.ice_buffer)
total += len(cur_buff)
if len(cur_buff) == 0:
print(" - Buffer is empty: EOF")
print(" - Sent: {} bytes".format(total))
print(" - Tampon vide => Fin du fichier")
print(" - Nombre d'octets envoyés: {}".format(total))
break
if args.debug:
print("- Sending 4096 bytes")
print("- Envoi de {} octets".format(args.ice_buffer))
icecast.send(cur_buff)
icecast.sync()
@ -101,18 +102,19 @@ def main():
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--log', help='Le fichier de log à traiter (requis)', type=str, required=True)
parser.add_argument('--host', help="Server Icecast2 (requis)", type=str, required=True)
parser.add_argument('--port', help="Port TCP sur lequel contacter le serveur Icecast2 (requis)", type=int, required=True)
parser.add_argument('--user', help="Nom d'utilisateur (requis)", type=str, required=True)
parser.add_argument('--password', help="Mot de passe (requis)", type=str, required=True)
parser.add_argument('--mount', help="Point de montage Icecast2 (requis)", type=str, required=True)
parser.add_argument('--workdir', help='Le répertoire de travail (défaut: /tmp)', type=str, default='/tmp')
parser.add_argument('--duration', help="La durée d'une note (défaut: 0.008)", type=float, default=0.08)
parser.add_argument('--amplitude', help="Le niveau sonore (défaut: 0.5)", type=float, default=0.5)
parser.add_argument('--framerate', help="Le taux d'échantillonage (défaut: 44100)", type=int, default=44100)
parser.add_argument('--adjust', help="Facteurs d'ajustement (défaut: 5000 20000)", nargs=2, default=[5000, 20000])
parser.add_argument('--exclude', help="Liste des caractères non traités (défaut: [])", nargs="*", default=[])
parser.add_argument('--host', help="Server Icecast2 (requis)", type=str, required=True)
parser.add_argument('--port', help="Port TCP sur lequel contacter le serveur Icecast2 (requis)", type=int, required=True)
parser.add_argument('--user', help="Nom d'utilisateur (requis)", type=str, required=True)
parser.add_argument('--password', help="Mot de passe (requis)", type=str, required=True)
parser.add_argument('--mount', help="Point de montage Icecast2 (requis)", type=str, required=True)
parser.add_argument('--protocol', help="Protocole à utiliser (défaut: http)", type=str, default='http')
parser.add_argument('--ice_buffer', help="Taille du tampon Icecast (défaut: 32768)", type=int, default=32768)
parser.add_argument('--debug', help="Affiche l'activité (défaut: False)", type=bool, default=False)
args = parser.parse_args()
main()