MP3 to WAV Converter.... per CMD
MP3 to WAV Converter.... per CMD
Hi, kennt jemand einen Konverter von MP3 nach WAV... aber der sollt per Shell aufgerufen werden, quasi COMMAND LINE TOOL ??
PB 6.10LTs / Windows 11 64Bit (i9/32GB/ 1TB-SSD+4TB-HDD/3060GTX12GB) / 2x27" Multitouch
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
Re: MP3 to WAV Converter.... per CMD
Kannst du in deiner Signatur dazu schreiben, ob du grundsätzlich Windows, Linux oder MacOS benutzt?
Nicht, dass ich dir eine Windows-Anwendung empfehle, obwohl du ein Linux-User bist.
Danke im Voraus.
Nicht, dass ich dir eine Windows-Anwendung empfehle, obwohl du ein Linux-User bist.
Danke im Voraus.
Re: MP3 to WAV Converter.... per CMD
http://www.chip.de/downloads/FFmpeg_35368574.html oder http://www.ffmpeg.org/
Diese Konsolenanwendung kannst du benutzen, um Dateien automatisiert zu konvertieren. Dokumentation bezüglich der Verwendung der einzelnen Parameter findest du hier: http://www.ffmpeg.org/ffmpeg.html
Beispiel-Aufrufzeile:
Diese Konsolenanwendung kannst du benutzen, um Dateien automatisiert zu konvertieren. Dokumentation bezüglich der Verwendung der einzelnen Parameter findest du hier: http://www.ffmpeg.org/ffmpeg.html
Beispiel-Aufrufzeile:
C:\...\ffmpeg.exe -y -i "C:\...\sound.mp3" -async 0 -vn -threads 6 -acodec pcm_s16le -ac 2 -ar 44100 -ab 1411k -af volume=630/500 -f wav "C:\...\newsound.wav"
Re: MP3 to WAV Converter.... per CMD
Funktioniert "eigentlich" ganz gut, aber mit dem Code :
lässt sich diese Wav nicht anzeigen.... wenn ich mit AnyVideoConverter diese Dateien umwandle (vom MP3 in WAV) dann gehts, dan haben die auch 1536kBit/s bei den FFM leider immer nur 1411kBit/s.... habe schon an den Werten rumgefummelt, aber ohne Wirkung, gibts nicht ein anderes Programm ??
Code: Alles auswählen
InitSprite()
window=OpenWindow(#PB_Any,0,0,1024,600,"stream", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If ReadFile( 0,datei$ )
riff$=""
For i=1 To 4
riff$+Chr(ReadCharacter(0))
Next
gr=ReadLong(0)
wave$=""
For i=1 To 4
wave$+Chr(ReadCharacter(0))
Next
fmt$=""
For i=1 To 4
fmt$+Chr(ReadCharacter(0))
Next
fmt_length=ReadLong(0)
format_tag=ReadWord(0)
channels=ReadWord(0)
sample_rate=ReadLong(0)
bytes_per_second=ReadLong(0)
block_align=ReadWord(0)
bits_per_sample=ReadWord(0)
dat$=""
For i=1 To 4
dat$+Chr(ReadCharacter(0))
Next
data_length=ReadLong(0)
*buffer=AllocateMemory(data_length)
ReadData(0, *buffer, data_length)
CloseFile(0)
EndIf
faktor_x=data_length/1024
faktor_y.d=200/32767
If faktor_x % 2 <> 0 ;faktor_x muß durch 2 teilbar sein
faktor_x+1
EndIf
OpenWindowedScreen(WindowID(window),0,0,1024,500,0,0,0, #PB_Screen_WaitSynchronization)
Repeat
event=WindowEvent()
ClearScreen(0)
StartDrawing(ScreenOutput())
x=0
x1=0
While x<data_length
y=PeekW(*buffer+x)
y*faktor_y
LineXY( x1,250,x1,250+y,RGB(200,87,0) )
x+faktor_x
x1+1
Wend
LineXY( 0,250,1024,250,RGB($FF,$00,$00) )
StopDrawing()
FlipBuffers()
Until event=#PB_Event_CloseWindow
CloseScreen()
CloseWindow(window)
PB 6.10LTs / Windows 11 64Bit (i9/32GB/ 1TB-SSD+4TB-HDD/3060GTX12GB) / 2x27" Multitouch
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
Re: MP3 to WAV Converter.... per CMD
Es gibt viele Programme. Ist nur die Frage, ob sie Command Line unterstützen.
Die meisten Konverter sind eh alle gleich, da sie nur eine Benutzeroberfläche besitzen und auf Tools wie ffmpeg zugreifen, weil sie eben nicht das Rad neu erfinden möchten. Google einfach mal nach Konvertierungsprogrammen.
Ansonsten wenn du dir nicht sicher bist oder nicht weißt, ob sie Command Line anbieten, dann kannst du testweise mit einem beliebigen Programm eine Konvertierung durchführen.
Während einer Testkonvertierung benutzt du Process Explorer. Dort kannst du sehr gut sehen, ob dein Programm eine externe Konvertierungsanwendung wie z.B. ffmpeg ausführt mit allen übergebenen Parametern, die du kopieren und wiederverwenden kannst, falls bezüglich dieser Anwendung keine Dokumentation über Command Lines vorliegt.
Außerdem bezweifle ich, dass es an ffmpeg liegt, sondern an deinem Code (oder an den Parametern?). Die Frage "gibts nicht ein anderes Programm ??" ist meiner Meinung die falsche Vorgehensweise.
Mit welchen Parametern hast du deine Datei konvertiert?
PS: Dein Code habe ich nicht angeschaut wegen Zeitmangel.
Die meisten Konverter sind eh alle gleich, da sie nur eine Benutzeroberfläche besitzen und auf Tools wie ffmpeg zugreifen, weil sie eben nicht das Rad neu erfinden möchten. Google einfach mal nach Konvertierungsprogrammen.
Ansonsten wenn du dir nicht sicher bist oder nicht weißt, ob sie Command Line anbieten, dann kannst du testweise mit einem beliebigen Programm eine Konvertierung durchführen.
Während einer Testkonvertierung benutzt du Process Explorer. Dort kannst du sehr gut sehen, ob dein Programm eine externe Konvertierungsanwendung wie z.B. ffmpeg ausführt mit allen übergebenen Parametern, die du kopieren und wiederverwenden kannst, falls bezüglich dieser Anwendung keine Dokumentation über Command Lines vorliegt.
Außerdem bezweifle ich, dass es an ffmpeg liegt, sondern an deinem Code (oder an den Parametern?). Die Frage "gibts nicht ein anderes Programm ??" ist meiner Meinung die falsche Vorgehensweise.
Mit welchen Parametern hast du deine Datei konvertiert?
PS: Dein Code habe ich nicht angeschaut wegen Zeitmangel.
Re: MP3 to WAV Converter.... per CMD
Also ich habe alle möglichen Parameter verändert und getestet... hier mal komplett :
wobei "1.mp3" irgendein MP3 Song sein kan. Problem ist, dass Faktor_x IMMER = NULL ist und dann die Schleife endlos läuft. Das Wav File kann ich problemlos abspielen, jedoch das Programm hängt in dieser While Schleife
Code: Alles auswählen
auswahl$="d:\1.mp3"
datei$ = "D:\1.wav"
a$="-y -i "+auswahl$+" -async 0 -vn -threads 6 -acodec pcm_s16le -ac 2 -ar 44100 -ab 1536k -af volume=630/500 -f wav "+datei$
RunProgram("d:\convert.exe ",a$,"",#PB_Program_Wait|#PB_Program_Hide)
InitSprite()
window=OpenWindow(#PB_Any,0,0,1024,600,"stream", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If ReadFile( 0,datei$ )
riff$=""
For i=1 To 4
riff$+Chr(ReadCharacter(0))
Next
gr=ReadLong(0)
wave$=""
For i=1 To 4
wave$+Chr(ReadCharacter(0))
Next
fmt$=""
For i=1 To 4
fmt$+Chr(ReadCharacter(0))
Next
fmt_length=ReadLong(0)
format_tag=ReadWord(0)
channels=ReadWord(0)
sample_rate=ReadLong(0)
bytes_per_second=ReadLong(0)
block_align=ReadWord(0)
bits_per_sample=ReadWord(0)
dat$=""
For i=1 To 4
dat$+Chr(ReadCharacter(0))
Next
data_length=ReadLong(0)
*buffer=AllocateMemory(data_length)
ReadData(0, *buffer, data_length)
CloseFile(0)
EndIf
faktor_x=data_length/1024
faktor_y.d=200/32767
If faktor_x % 2 <> 0 ;faktor_x muß durch 2 teilbar sein
faktor_x+1
EndIf
If faktor_x=0
faktor_x=1
EndIf
OpenWindowedScreen(WindowID(window),0,0,1024,500,0,0,0, #PB_Screen_WaitSynchronization)
Repeat
event=WindowEvent()
ClearScreen(0)
StartDrawing(ScreenOutput())
x=0
x1=0
While x<data_length
y=PeekW(*buffer+x)
y*faktor_y
LineXY( x1,250,x1,250+y,RGB(200,87,0) )
x+faktor_x
x1+1
Wend
LineXY( 0,250,1024,250,RGB($FF,$00,$00) )
StopDrawing()
FlipBuffers()
Until event=#PB_Event_CloseWindow
CloseScreen()
CloseWindow(window)
PB 6.10LTs / Windows 11 64Bit (i9/32GB/ 1TB-SSD+4TB-HDD/3060GTX12GB) / 2x27" Multitouch
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: MP3 to WAV Converter.... per CMD
Du musst mal die Werte alle überprüfen, die du da ausliest. Möglicherweise ist fmt_length gar nicht 16, sondern eine höhere Zahl. In dem Fall würde der Datenbereich erst später anfangen und dann liest du eine falsche data_length aus.
Ich hatte irgendwann mal das hier geschrieben, falls dir das hilft. Da wird das LIST-Tag, was nirgendwo dokumentiert ist, auch noch raus genommen.
Ich hatte irgendwann mal das hier geschrieben, falls dir das hilft. Da wird das LIST-Tag, was nirgendwo dokumentiert ist, auch noch raus genommen.
Code: Alles auswählen
Define filename.s = OpenFileRequester("Choose a RIFF WAVE file...", GetEnvironmentVariable("HOME") + "/", "RIFF WAVE (*.wav)|*.wav|All Files|*.*", 0)
If filename = ""
End
EndIf
Procedure assertFileFormat(a.l, b.l, s.s = "")
;Debug a
;Debug b
If (a <> b)
MessageRequester("Wrong format", "This is not a RIFF WAVE! " + s)
End
EndIf
EndProcedure
Define file.i
file = ReadFile(#PB_Any, filename)
If Not file
MessageRequester("Error opening file", "Could not open file!")
End
EndIf
; Check if it is a RIFF WAVE file
assertFileFormat(ReadLong(file), 1179011410) ;"RIFF"
Define datasize.i = ReadLong(file)
assertFileFormat(ReadLong(file), 1163280727) ;"WAVE"
assertFileFormat(ReadLong(file), 544501094) ;"fmt "
Define headerSize.i = ReadLong(file)
Define dataPos.i = Loc(file) + headerSize
assertFileFormat(ReadUnicodeCharacter(file), 1, "Only PCM is supported.") ;1=PCM
Define channels.i = ReadUnicodeCharacter(file)
Define sampleRate.i = ReadLong(file)
ReadLong(file) ; ignore
Define blockSize.i = ReadUnicodeCharacter(file)
Define bits.i = ReadUnicodeCharacter(file)
assertFileFormat(channels * ((bits + 7) / 8), blockSize, "Blocksize is wrong.")
FileSeek(file, dataPos)
Define blockHeader.i = ReadLong(file)
If (blockHeader = 1414744396) ;LIST
Define blockSize = ReadLong(file)
FileSeek(file, blockSize, #PB_Relative)
EndIf
assertFileFormat(ReadLong(file), 1635017060, "Wrong data header.") ;data
Define dataSize.i = ReadLong(file)
Re: MP3 to WAV Converter.... per CMD
Also das Programm von Nick läuft ohne Fehlermeldung durch, das WAV File kann ich mit jedem Programm abspielen aber dieser andere Code erkennt die Länge scheinbar nicht.... wenn ich s mit nem anderen Programm umwandle ist das Wav File aber auch 2 MB größer und geht dann einwandfrei....
PB 6.10LTs / Windows 11 64Bit (i9/32GB/ 1TB-SSD+4TB-HDD/3060GTX12GB) / 2x27" Multitouch
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: MP3 to WAV Converter.... per CMD
Jedes mal.Tommy hat geschrieben:Er heißt Nic, nicht Nick!
@Then:
Du musst eigentlich nur noch dein 'AllocateMemory' und das 'ReadData' an meinen Code passend anfügen. Dann geht es. Warum die WAVs sich allerdings in 2MB Länge unterscheiden, kann ich dir auch nicht erklären.