This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
tutorial:batch_processing [2011/01/09 16:01] agent_007 fix errors |
tutorial:batch_processing [2011/01/09 16:41] agent_007 hints |
||
---|---|---|---|
Line 25: | Line 25: | ||
You can copy that text to new text file, then rename the text file to **something.bat** and move it to the folder where you want to process the files. Then just double click the **something.bat** and processing should start. | You can copy that text to new text file, then rename the text file to **something.bat** and move it to the folder where you want to process the files. Then just double click the **something.bat** and processing should start. | ||
- | If you want to force certain bitrate for audio and video, do following | + | For Linux/Unixes using Bash shell similar script would be |
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | VAR="batchfiles.txt" | ||
+ | VIDEOCODEC="Xvid" | ||
+ | AUDIOCODEC="MP3" | ||
+ | ls *.mp4 | sort > $VAR # Collect the files in the current directory | ||
+ | cat $VAR | while read line; do # Loop read the filenames from the file | ||
+ | INPUT=$(echo ${line}) # Grab the next new filename | ||
+ | OUTPUT=${INPUT%.*4} # Remove shortest match of characters between the '. ' and the '4' at end of string | ||
+ | OUTPUT+=".avi" # Append new extension | ||
+ | avidemux2 --video-codec $VIDEOCODEC --audio-codec $AUDIOCODEC --force-alt-h264 --load "$INPUT" --save "$OUTPUT" --quit | ||
+ | done | ||
+ | rm $VAR # Remove the text file with the file names | ||
+ | </code> | ||
+ | (this will create **something.avi** from **something.mp4**) | ||
+ | |||
+ | |||
+ | If you want to force certain bitrate for audio and video with Win32, do following | ||
<code> | <code> | ||
set avidemux="C:\softa\avidemux_r6854\avidemux2.exe" | set avidemux="C:\softa\avidemux_r6854\avidemux2.exe" | ||
Line 34: | Line 52: | ||
for %%f in (*.mp4) do %avidemux% --video-codec %videocodec% --video-conf %videobitrate% --audio-codec %audiocodec% --audio-bitrate %audiobitrate% --force-alt-h264 --load "%%f" --save "%%f.avi" --quit | for %%f in (*.mp4) do %avidemux% --video-codec %videocodec% --video-conf %videobitrate% --audio-codec %audiocodec% --audio-bitrate %audiobitrate% --force-alt-h264 --load "%%f" --save "%%f.avi" --quit | ||
</code> | </code> | ||
+ | |||
+ | For Linux/Unixes using Bash shell similar script would be | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | VAR="batchfiles.txt" | ||
+ | VIDEOCODEC="Xvid" | ||
+ | AUDIOCODEC="MP3" | ||
+ | VIDEOBITRATE="cbr=512" | ||
+ | AUDIOBITRATE="64" | ||
+ | ls *.mp4 | sort > $VAR # Collect the files in the current directory | ||
+ | cat $VAR | while read line; do # Loop read the filenames from the file | ||
+ | INPUT=$(echo ${line}) # Grab the next new filename | ||
+ | OUTPUT=${INPUT%.*4} # Remove shortest match of characters between the '. ' and the '4' at end of string | ||
+ | OUTPUT+=".avi" # Append new extension | ||
+ | avidemux2 --video-codec $VIDEOCODEC --video-conf $VIDEOBITRATE --audio-codec $AUDIOCODEC --audio-bitrate $AUDIOBITRATE --force-alt-h264 --load "$INPUT" --save "$OUTPUT" --quit | ||
+ | done | ||
+ | rm $VAR # Remove the text file with the file names | ||
+ | </code> | ||
+ | (this will create **something.avi** from **something.mp4**) | ||
==== JS scripting (ECMAScript) only batch processing ==== | ==== JS scripting (ECMAScript) only batch processing ==== | ||
Line 185: | Line 222: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | You can create scripts quite easily by yourself. You can apply needed settings via GUI and then use **File -> Save Project As...** to create text file that contains all settings. Then you can open that file in text editor and copy+paste needed stuff to new script (or replaces parts of other script). | ||
==== Combination of command-line and JS scripting ==== | ==== Combination of command-line and JS scripting ==== | ||
Line 220: | Line 259: | ||
for %%f in (*.mp4) do %avidemux% --force-alt-h264 --load "%%f" --run something.js --save "%%f.avi" --quit | for %%f in (*.mp4) do %avidemux% --force-alt-h264 --load "%%f" --run something.js --save "%%f.avi" --quit | ||
</code> | </code> | ||
+ | |||
+ | For Linux/Unixes using Bash shell similar script would be | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | VAR="batchfiles.txt" | ||
+ | ls *.mp4 | sort > $VAR # Collect the files in the current directory | ||
+ | cat $VAR | while read line; do # Loop read the filenames from the file | ||
+ | INPUT=$(echo ${line}) # Grab the next new filename | ||
+ | OUTPUT=${INPUT%.*4} # Remove shortest match of characters between the '. ' and the '4' at end of string | ||
+ | OUTPUT+=".avi" # Append new extension | ||
+ | avidemux2 --force-alt-h264 --load "$INPUT" --run something.js --save "$OUTPUT" --quit | ||
+ | done | ||
+ | rm $VAR # Remove the text file with the file names | ||
+ | </code> | ||
+ | (this will create **something.avi** from **something.mp4**) | ||
+ | |||
+ | If you create your own combine batch settings, make sure order of command-line parameters is always --load something, --run something and --save something (AVIdemux will run these options in give order). | ||
+ | |||
+ | |||
+ | ==== Tips ==== | ||
+ | * You can replace **avidemux2** with **avidemux2_cli** if you want to process files via GUI | ||
+ | * You can use **--nogui** option in case you want to suppress all dialogs (it must be first option!) |