Was ist das Python-Äquivalent von Lame MP3 Converter?

8

Ich muss MP3-Audiodateien auf der Serverseite in 64 kbps umwandeln.

Im Moment benutze ich subprocess , um lame aufzurufen, aber ich frage mich, ob es gute Alternativen gibt?

    
satoru 24.05.2011, 08:32
quelle

5 Antworten

2

Es scheint einen etwas alten Thread zu diesem Thema hier zu geben: Ссылка

Die letzte Schlussfolgerung war, eine benutzerdefinierte Bindung an lame_enc.dll über Python- & gt; C-Bindungen zu erstellen.

Der Grund für diese Schlussfolgerung war, dass die bestehenden Bindungsbibliotheken (pymedia / py-lame) nicht gepflegt wurden.

Leider hat der Typ es nicht zur Arbeit gebracht:)

Vielleicht sollten Sie weiterhin subprocess verwenden. Sie können diese Wahl nutzen, Ihre Codierung auf einer etwas höheren Ebene abstrahieren und den Code / die Strategie wiederverwenden, um optional andere Befehlszeilencodierungstools (wie zB ogg oder shn tools) auszuführen.

Ich habe mehrere Audio-Ripping-Tools gesehen, die diese Strategie übernehmen.

    
Merlyn Morgan-Graham 24.05.2011 08:46
quelle
1

Ich habe mit Python Audio Tools gearbeitet, das Konvertierungen zwischen verschiedenen Audioformaten durchführen kann.

Ich habe es bereits verwendet, um .wav-Dateien in mp3, .flac und .m4a zu konvertieren.

    
Luis Alberto Santana 16.02.2012 03:59
quelle
0

Wenn Sie LAME zum Verschlüsseln Ihrer MP3s (und nicht von PyMedia) verwenden möchten, können Sie immer ctypes verwenden um die lame encoder DLL (oder .so, wenn Sie unter Linux sind) zu umhüllen. Der genaue Wrapper-Code, den Sie verwenden werden, wird an die LAME-DLL-Version gebunden sein (und es gibt leider viele, die herumfliegen), also kann ich Ihnen nicht wirklich ein Beispiel geben, aber die Ctypes-Dokumente sollten klar genug sein über das Einbetten von DLLs.

    
Boaz Yaniv 24.05.2011 09:53
quelle
0

Vorbehalt: relativ neuer Programmierer hier und ich hatte keine Notwendigkeit, Audiodateien vorher zu konvertieren.

Wenn ich jedoch verstehe, was Sie serverseitig richtig meinen, suchen Sie vielleicht nach einem guten Ansatz für die Verwaltung von Massenkonvertierungen, und Ihr Interesse an einer Python-Lösung könnte zum Teil darin bestehen, die Ressource besser verwalten zu können verwenden oder in Ihre Verarbeitungskette integrieren. Ich hatte ein ähnliches Problem / Ziel, das ich mit einer Mischung aus Merlyns Empfehlung und Sellerie gelöst habe. Ich benutze keinen Django-Sellerie, aber wenn dies für ein Django-basiertes Projekt ist, könnte das auch für dich interessant sein. Mehr über Sellerie erfahren Sie hier:

Je nachdem, was Sie bereits eingerichtet haben, ist möglicherweise etwas Zeit für die Einrichtung erforderlich. Um alles nutzen zu können, müssen Sie Rabbitmq / Erlang installiert haben, aber wenn Sie den Anleitungen auf den obigen Seiten folgen, ist es jetzt ziemlich schnell.

Hier ist ein Beispiel, wie ich Sellerie mit Subprozess verwende, um ein ähnliches Problem anzugehen. Ähnlich wie bei dem obigen Vorschlag des Posters benutze ich subprocess, um ffmpeg aufzurufen, was für Videotools so gut ist wie es geht und wahrscheinlich auch für Audio-Tools so gut ist wie es geht. Ich füge ein bisschen mehr als notwendig hier ein, um Ihnen ein Gefühl dafür zu geben, wie Sie Ihr eigenes ein wenig konfigurieren könnten.

%Vor%

Lass es mich wissen, wenn dir das nützlich ist. Ich bin relativ neu, um Fragen hier zu beantworten und bin nicht sicher, ob meine Versuche hilfreich sind oder nicht. Viel Glück!

    
Profane 24.05.2011 14:07
quelle
0

Nun, Gstreamer hat das "hässliche Plugin" lamemp3enc und es gibt Python-Bindungen für Gstreamer (gst-python 1.2, unterstützt Python 3.3). Ich habe nicht versucht, diesen Weg selbst zu gehen, also bin ich nicht wirklich in der Lage, etwas zu empfehlen ... Ehrlich gesagt scheint mir eine Subprozesslösung viel einfacher, wenn nicht "sauberer" zu sein.

    
Emanuel Landeholm 28.03.2014 11:04
quelle

Tags und Links