Undisputed Posted March 11 Share Posted March 11 i have a script that is supposed to edit the pitch and speed and save as a mp3 like the input mp3 it gives no result, nothing saves the input file #include <File.au3> #include <Array.au3> #include <Constants.au3> ; Set the path to the FFmpeg executable Global $ffmpegPath = "C:\Users\user\Downloads\ffmpeg-master-latest-win64-gpl\ffmpeg-master-latest-win64-gpl\bin\ffmpeg.exe" ; Set the path to the folder containing the audio files Global $audioFolder = "C:\Users\user\Downloads\mp3\mp3" ; Set the desired pitch and speed adjustments Global $pitchAdjustment = 0.72 ; Increase pitch by 50% Global $speedAdjustment = 0.83 ; Decrease speed by 50% ; Recursively search for all MP3 files in the specified folder and its subfolders Global $mp3Files = _FileListToArrayRec($audioFolder, "*.mp3", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_NOSORT) ; Loop through each MP3 file and apply the pitch and speed adjustments using FFmpeg For $i = 1 To $mp3Files[0] ; Get the full path to the current MP3 file Local $mp3File = $mp3Files[$i] ; Get the path to the folder containing the current MP3 file Local $mp3Folder = StringLeft($mp3File, StringInStr($mp3File, "\", 0, -1)) ; Get the base filename (without extension) of the current MP3 file Local $mp3BaseName = StringRegExpReplace($mp3File, "(.*\\)(.*)(\.mp3)", "$2") ; Construct the command-line arguments for FFmpeg Local $ffmpegArgs = "-i """ & $mp3File & """ -filter:a ""atempo=" & $speedAdjustment & ",asetrate=44100*" & $pitchAdjustment & """ -vn -c:a libmp3lame -q:a 2 """ & $mp3Folder & $mp3BaseName & ".mp3""" ; Call FFmpeg to process the current MP3 file RunWait('"' & $ffmpegPath & '" ' & $ffmpegArgs, "", @SW_HIDE) Next how to fix it mp3.rar Link to comment Share on other sites More sharing options...
argumentum Posted March 11 Share Posted March 11 hmmm, ffmpeg.exe -i "318.mp3" -filter:a "atempo=0.83,asetrate=44100*0.72" -vn -c:a libmp3lame -q:a 2 "318.mp3.mp3" I just run your code and it sounds like crap does what is told to do. Nothing wrong with it that I see. Follow the link to see my signature's stuff.FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
mistersquirrle Posted March 11 Share Posted March 11 Yep, ran your code and it processed just fine. It created a separate file however, not overwriting the original. You have no logging, likely you have something wrong, like no files in the folder you set, or wrong ffmpeg directory. I would suggest that you add some form of logging to each line and figure out where it all goes wrong. Also set your RunWait to @SW_SHOW and make sure that it's actually running. It processes pretty quick and closes pretty fast, so you may want to look into logging the output of ffmpeg with StdoutRead: https://www.autoitscript.com/autoit3/docs/functions/StdoutRead.htm Additionally, your regex doesn't appear to work here: Local $mp3BaseName = StringRegExpReplace($mp3File, "(.*\\)(.*)(\.mp3)", "$2") I think maybe you want: (.*\\)?(.*)(\.mp3) Because it doesn't work, it saves the output as 318.mp3.mp3 as you can see in @argumentum's command line. Although I would recommend probably checking out _PathSplit instead: https://www.autoitscript.com/autoit3/docs/libfunctions/_PathSplit.htm This is likely a safer option than RegEx if you're not super familiar with it. This can also help with $mp3Folder We ought not to misbehave, but we should look as though we could. Link to comment Share on other sites More sharing options...
argumentum Posted March 11 Share Posted March 11 35 minutes ago, mistersquirrle said: ... You have no logging, likely you have something wrong ... .. and me, I wrote a RunWaitEx() just for the OP**. So the RunWait() can be logged. ** I may have timed traveled Follow the link to see my signature's stuff.FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now