Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf8 -*-
- # Dieses Script konvertiert alle im gegenwärtigen Verzeichnis gefundenen Mediadateien
- # in MP3 Dateien. Also beispielsweise Youtube Downloads.
- # Importiere OS Modul
- import os
- # Modul fuer reguläre Ausdruecke
- import re
- # Modul für Multiprocessing Funktionen importieren
- import multiprocessing
- # Queue für gefundene Mediadateien initialisieren
- q = multiprocessing.Queue()
- # Funktion zum Encoden von MP3 Dateien
- def encodeAudio ():
- while not q.empty():
- # Nächsten Eintrag der Datei-Queue holen
- sourcefile = q.get()
- print sourcefile
- targetfile = sourcefile[:-3] + 'mp3'
- commandline = "ffmpeg -i \"" + sourcefile + "\" -acodec libmp3lame -ac 2 -ab 192k -vn -y \""+ targetfile + "\""
- os.popen (commandline)
- # Herausfinden wie viele CPUs / Kerne der Host hat
- cores=multiprocessing.cpu_count()
- # Definition der unterstützten Dateiendungen
- extensions = ['avi','flv', 'mp4', 'wav', 'ogg', 'mpg', 'aac', 'flac' ]
- # Vergleichspattern "zusammenbauen"
- pattern = ''
- for n in extensions:
- # Trennzeichen anhängen, falls bereits pattern definiert sind
- if len(pattern) > 0: pattern += '|'
- pattern = pattern + n + '|' + n.upper()
- # RegEx für gesuchte Dateiendungen zusammenbauen
- expr = re.compile (".*\.(" + pattern + ")$")
- # Alle Dateien der aktuell bearbeiteten Verzeichnis einlesen
- files = os.listdir('.')
- # Nur Mediadateien bearbeiten
- for n in files:
- # Gefundene Mediadateien der Verarbeitungsqueue hinzufügen
- if expr.match (n):
- q.put(n)
- print (n)
- # Spawnen entsprechend vieler Prozesse für das parallele Audioencoding
- for i in range (cores):
- process = multiprocessing.Process(target=encodeAudio, args=())
- process.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement