Ich bin auf der Suche nach einer Bibliothek / einem Modul, die eine MP3-Datei (andere Formate sind ein Plus) zu OGG transkodieren können.
Wofür ich das brauche: Ich schreibe eine relativ kleine Web-App für den persönlichen Gebrauch, mit der Leute ihre Musik über einen Browser anhören können. Für den Hörteil möchte ich das neue und mächtige <audio>
-Tag verwenden. Allerdings unterstützen nur wenige Browser MP3. Live Transcoding scheint die beste Option zu sein, da es keinen Speicherplatz verschwendet (wie wenn ich die gesamte Musikbibliothek konvertieren würde) und ich keine Performance-Probleme haben werde, da es höchstens 2-3 Listener gleichzeitig gibt / p>
Grundsätzlich muss ich es mit einem MP3 (oder was auch immer) füttern und bekomme dann ein dateiähnliches Objekt zurück, das ich an mein Framework ( flask
, übrigens) zurückgeben kann, um es dem Client zu füttern.
Zeug, das ich angeschaut habe:
gstreamer
- scheint übertrieben, obwohl es eine gute Unterstützung für viele Formate bietet; Dokumentation fehlt schrecklich timeside
- sieht gut aus und ist einfach zu benutzen, aber auch hier gibt es viele Dinge, die ich nicht brauche (Grafik, Analyse, UI ...) Vorschläge?
Sie wissen, dass es keine Schande ist, subprocess
zum Aufruf externer Dienstprogramme zu verwenden. Zum Beispiel könnten Sie Rohre wie:
In der Tat, das ist wahrscheinlich der beste Ansatz überhaupt. Beachten Sie, dass bei einem Multi-CPU-System der MP3-Decoder und der OGG-Encoder in separaten Prozessen ausgeführt werden und wahrscheinlich auf separaten Kernen geplant werden. Wenn Sie das Gleiche mit einer single-threaded-Bibliothek tun würden, könnten Sie nur so schnell transcodieren, wie ein einzelner Kern damit umgehen könnte.
Tags und Links python audio transcoding