Pydub Fehler [WinError 2]

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
toper3902

Hallo zusammen
Ich möchte gerne in python zwei mp3 dateien zu einer zusammenfügen.

Code: Alles auswählen

from pydub import AudioSegment


file1 = "Audio1.mp3"
file2 = "Audio2.mp3"

sound1 = AudioSegment.from_file(file1)
sound2 = AudioSegment.from_file(file2)

combined = sound1.overlay(sound2)

combined.export("Audio3.mp3", format='mp3')
Allerdings bekomme ich diese Fehlermeldung:


Warning (from warnings module):
File "C:\Users\Tobias_Arbeit\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\utils.py", line 165
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work

Warning (from warnings module):
File "C:\Users\Tobias_Arbeit\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\utils.py", line 193
warn("Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work", RuntimeWarning)
RuntimeWarning: Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work
Traceback (most recent call last):
File "D:\Tobias\Python\test.py", line 10, in <module>
sound1 = AudioSegment.from_file(file1)
File "C:\Users\Tobias_Arbeit\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\audio_segment.py", line 665, in from_file
info = mediainfo_json(orig_file)
File "C:\Users\Tobias_Arbeit\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\utils.py", line 263, in mediainfo_json
res = Popen(command, stdin=stdin_parameter, stdout=PIPE, stderr=PIPE)
File "C:\Users\Tobias_Arbeit\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 756, in __init__
restore_signals, start_new_session)
File "C:\Users\Tobias_Arbeit\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1155, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Fehlermeldung sag doch recht deutlich, was schief geht: pydub braucht ffmpeg oder avconf. Und findet die nicht. Du musst das also installieren. Steht bestimmt in der pydub-Doku beschrieben. Und siehe da:

https://github.com/jiaaro/pydub#dependencies
Benutzeravatar
sparrow
User
Beiträge: 4537
Registriert: Freitag 17. April 2009, 10:28

Scheint so, als bräuchte das Modul ffmpeg oder avprobe um zu funktionieren. Die werden wohl per subprovesd aufgerufen.
toper3902

Das habe ich bereits installiert, deshalb bin ich ja so verwirrt
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Schön, das du uns das 3 Posts später sagst. Hättest du auch gleich erwähnen können. Dann könnte man gleich danach suchen.
Benutzeravatar
sparrow
User
Beiträge: 4537
Registriert: Freitag 17. April 2009, 10:28

Die Programme müssen sich im aktuellen Verzeichnis oder in einem Verzeichnis in %PATH% befinden.
toper3902

Welche Programme meinst du?
ffmpeg und pydub?
Wil die beiden befinden sich beide in site-packages.

Also die Ordner:
ffmpeg
ffmpeg-1.4-py3.7.egg-info
pydub
pydub-0.23.1.dist-info
Benutzeravatar
sparrow
User
Beiträge: 4537
Registriert: Freitag 17. April 2009, 10:28

Das Script sucht nach FFMPEG oder AVCONF.
Installier FFMPEG unter Windows und nimm das Verzeichnis zur exe in %PATH% auf.
toper3902

Ich habe jetzt die WHL datei in pydub entpackt. Jetzt sind die beiden ffmpeg Ordner in pydub aber ich bekomme immernoch die selbe Fehlermeldung
Benutzeravatar
__blackjack__
User
Beiträge: 14040
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@toper3902: Du musst eines der beiden Kommandozeilenprogramme ffmpeg.exe oder avconv.exe installieren. Das hat nichts mit Python oder Python-Modulen zu tun. Das Python-Modul `ffmpeg` ist dazu da das Programm ffmpeg von Python aus anzusprechen. Das setzt aber voraus, dass das auch installiert und über %PATH% erreichbar ist.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
toper3902

Und wie installiere ich das?
Ich finde überall nur .tar dateien und ich weiß nicht wo ich die hintun soll
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich finde ZIP-Dateien: https://ffmpeg.zeranoe.com/builds/

ACHTUNG: richtiges Betriebssystem auswaehlen!

Und dann tu die doch wohin wo es dir gefaellt. Darin solltest du irgendwo ffmpeg.exe finden, und den Pfad dahin musst du in deine Umegbungsvariable PATH eintragen, wie schon geschrieben.
toper3902

In der .zip datei befinden sich 3 Anwendungen:
ffmpeg
ffplay
ffprobe

Aber ich kann keins davon installieren.
Es öffnet sich nur kurz das Terminal und stürzt dann ab.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das sind keine installer. Das SIND die Programme um die es geht. Die werden von Pydub verwandt.
toper3902

Achso.
Nochmal ob ich das Richtig verstanden habe:

Ich muss diesen Ordner mit den Programmen z.B. in den pydub Ordner verschieben.
Und wo muss ich dann den Pfad eintragen?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du kannst den in den pydub-Ordner verschieben. Ich wuerde das nicht machen, sondern mir was unter "Programme" suchen, aber das ist dir ueberlassen.

Und dann gibt es die Umgebungsvariable PATH, und da musst du den Pfad zu den Programmen eintragen. NUR DAS VERZEICHNIS!!!!!!!!!!!!!!!!!!!!

Also wenn sich ffmpeg.exe hier befindet

c:\meine\tollen\pfade\auf\meiner\festplatte\ffmpeg-v1234\ffmpeg.exe

dann fuegst du

c:\meine\tollen\pfade\auf\meiner\festplatte\ffmpeg-v1234

in PATH hinzu.
toper3902

Ok.
Aber wo befindet sich die Variable PATH?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hast du mal probiert "windows umgebungsvariable %PATH%" zu googeln?
toper3902

Ok, ich habe Path in den Systemeinstellungen geändert aber bekomme immernoch die selbe Fehlermeldung
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hast du dein Windows neu gestartet? Wenn nicht, mach das mal. Wenn das immer noch nichts hilft, dann poste bitte die Ausgabe von "set" aus der CMD.EXE.
Antworten