Code: Select all
Procedure.s QP(str$)
ProcedureReturn "'" + ReplaceString(str$, "'", "'\''") + "'"
EndProcedure
Procedure Shell(ShellCommand$)
Protected shell = RunProgram("/bin/zsh","","",
#PB_Program_Open|#PB_Program_Write|#PB_Program_Read|#PB_Program_Error )
If shell
WriteProgramStringN(shell,"zsh -lc " + QP(ShellCommand$))
WriteProgramData(shell,#PB_Program_Eof,0)
While ProgramRunning(shell)
If AvailableProgramOutput(shell)
Output$= ReadProgramString(shell)+ Chr(13)
Debug Output$
EndIf
tmper$ = ReadProgramError(shell)
If tmper$
Debug tmper$ + Chr(13)
EndIf
Wend
CloseProgram(shell)
EndIf
EndProcedure
s.s= "ffmpeg -v 8 -hide_banner -progress pipe:1 -i '/Users/piero/Desktop/in.mp4' -af 'dynaudnorm=g=3:c=1:m=10:f=10:b=1' -map 0 -c:v copy -y '/Users/piero/Desktop/out.mp4'"
Shell(s) ; works as expected
Debug ~"\n"+s+~"\n"
; THE FOLLOWING WILL GIVE ERROR EVEN IF I DELETE " + " !!!!!!
s.s= "ffmpeg" + " -v 8 -hide_banner -progress pipe:1 -i '/Users/piero/Desktop/in.mp4' -af 'dynaudnorm=g=3:c=1:m=10:f=10:b=1' -Map 0 -c:v copy -y '/Users/piero/Desktop/out.mp4'"
Shell(s) ; Error splitting the argument list: Option not found
Debug ~"\n"+s
; 6.12 LTS Mac M1
