2017-05-22 4 views
1

Ich möchte, dass mein Python-Programm die Audiospuren aus verschiedenen Videodateien extrahiert, ohne den Audiocodec zu ändern. Dazu rufe ich den folgenden Befehl ein:Wie finde ich die Dateierweiterung zum Extrahieren von Audiotracks mit ffmpeg und python?

ffmpeg -i "input" -vn -acodec copy "output.???" 

Das funktioniert jedoch nur, wenn die Dateiendung der Ausgabedatei bekannt ist. Gibt es eine Möglichkeit, die entsprechende Dateiendung herauszufinden?

+1

Nicht möglich. Es gibt keine Zuordnung von einer Codec-ID zu unterstützten Containern oder rohen Bitstream-Muxern. Sie können das Problem umgehen, indem Sie eine Liste der unterstützten Erweiterungen für jeden gängigen Audio-Codec (MP3, AAC, PCM, AC3, Opus, Vorbis) erstellen und dann den Audio-Codec des Eingangs prüfen und die Ausgabeerweiterung wie in Die Liste. – Mulvya

+0

OK, ich werde das tun. Danke für deine Antwort! – seenorth

Antwort

0

Wenn Sie Python mit einer kleinen Anzahl von Eingabetypen verwenden, können Sie Code schreiben, um die Dateinamenserweiterung zu verwenden, um eine copy.ext-Auswahl zu bestimmen?

if filename[-4:] == '.mp4': 
    my_ext = '.m4a' #etc.... 
outnames = [] 
for i in range(len(filenames)): 
    outnames.append(filenames[i][:-4]+my_ext[i]) #list of .ext 

Dann erstellen Sie eine vollständige 'Befehlsliste', die durch subprocess.Popen() an Windows weitergeleitet wird. Bei der Ausführung verwenden Sie einen Versuch: außer: blockieren, um eine Ihrer ersten.guess.Fehler zu nehmen und eine schnelle '-vn -ab 256k -y' Schalter und ffmpeg wird fast immer einen geeigneten Codec für eine schnelle Audio-Codierung auswählen.

Verwandte Themen