2c1903012d | ||
---|---|---|
config | ||
screenshots | ||
scripts | ||
setup | ||
src | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
BatchEncoder.sln | ||
CHANGELOG.md | ||
LICENSE.TXT | ||
README.md | ||
_config.yml | ||
appveyor.yml | ||
build.cake | ||
build.ps1 | ||
build.sh |
README.md
BatchEncoder (Audio Conversion GUI)
BatchEncoder is an audio files conversion software.
Support BatchEncoder
Download BatchEncoder
Platform | Type | Version | Download |
---|---|---|---|
Windows 32-bit | Installer | 2.2 | BatchEncoder-2.2-Win32.exe |
Windows 64-bit | Installer | 2.2 | BatchEncoder-2.2-x64.exe |
Windows 32-bit | Portable | 2.2 | BatchEncoder-2.2-Win32.zip |
Windows 64-bit | Portable | 2.2 | BatchEncoder-2.2-x64.zip |
System requirements
Minimum supported Windows version is Windows 7 SP1 or above, recommended is Windows 10 Anniversary Update.
Provided binaries should work under Windows XP Service Pack 3 (SP3) for x86, Windows XP Service Pack 2 (SP2) for x64.
Minimum supported Linux version is Ubutnu 16.10 (using Wine 2.0).
Command-line tools may have different hardware and software requirements. All tools have been tested under Windows 10 Anniversary Update.
CI Builds
Download bleeding edge builds from the CI server.
Mirrors
Language Editor
Download latest version of the language editor from here.
About
BatchEncoder is an audio files conversion software. It supports most of popular audio file formats including lossy and lossless compression. The program is very simple to use. BatchEncoder is basically GUI front-end for command-line tools. All it does is create background processes and pass arguments to it with options set in presets/format menu and additionally adds input and output file paths. For specific options for each format use help available for command-line tools.
Features
- Front-end for command-line tools.
- Supports popular audio formats.
- File transcoding between audio formats.
- Multi-threaded conversion.
- Full UNICODE support.
- Multi-language user interface.
- Out of the box configuration for new users.
- Advanced options for experienced users.
- Open-source, fast and simple.
Screenshots
File list
Conversion progress
Configure presets
Configure formats
Configure tools
Keyboard Shortcuts
File Menu
Shortcut | Description |
---|---|
Ctrl+L | Load List |
Ctrl+S | Save List |
Ctrl+E | Clear List |
Alt+F4 | Exit |
Edit Menu
Shortcut | Description |
---|---|
F5 | Add Files |
F9 | Add Directory |
F2 | Rename |
F3 | Reset Time/Status |
F4 | Reset Output/Preset |
DEL | Remove |
INS | Crop |
Ctrl++ | Remove Checked |
Ctrl+- | Remove Unchecked |
Shift++ | Check Selected |
Shift+- | Uncheck Selected |
Ctrl+A | Select All |
Ctrl+N | Select None |
Ctrl+I | Invert Selection |
Action Menu
Shortcut | Description |
---|---|
F9 | Convert |
Options Menu
Shortcut | Description |
---|---|
F7 | Configure Presets |
F8 | Configure Formats |
F10 | Configure Tools |
Supported formats and tools
Encoders
Name | Extension | Version | Executable | In Pipe | Out Pipe | Progress function |
---|---|---|---|---|---|---|
SSRC | WAV | 1.33 | ssrc.exe | no | no | GetProgress_SsrcEnc.progress |
LAME | MP3 | 3.100 | lame.exe | yes | yes | GetProgress_LameEnc.progress |
MPCENC | MPC | 1.30.0 | mpcenc.exe | yes | no | GetProgress_MpcEnc.progress |
FAAC | AAC | 1.28-mod | faac.exe | yes | no | GetProgress_FaacEnc.progress |
QAAC | AAC | 2.64 | qaac.exe | yes | no | GetProgress_QaacEnc.progress |
QAAC | M4A | 2.64 | qaac.exe | yes | no | GetProgress_QaacEnc.progress |
NEROAACENC | M4A | 1.5.4 | neroAacEnc.exe | yes | no | - none - |
NEROAACENC | MP4 | 1.5.4 | neroAacEnc.exe | yes | no | - none - |
OPUSENC | OPUS | 1.2.1-35 | opusenc.exe | yes | no | GetProgress_OpusEnc.progress |
OGGENC | OGG | 2.88 | oggenc2.exe | yes | no | GetProgress_OggEnc.progress |
AFTEN | AC3 | git-2009122 | aften.exe | yes | no | GetProgress_AftenEnc.progress |
FFMPEG | AC3 | 3.4 | ffmpeg.exe | yes | yes | - none - |
FLAC | FLAC | 1.3.2 | flac.exe | yes | no | GetProgress_FlacEnc.progress |
WAVPACK | WV | 5.1.0 | wavpack.exe | no | no | GetProgress_WavPackEnc.progress |
LA | LA | 0.4b | la.exe | yes | no | GetProgress_LaEnc.progress |
MAC | APE | 4.18 | mac.exe | no | no | GetProgress_MacEnc.progress |
OFR | OFR | 5.100 | ofr.exe | yes | no | GetProgress_OfrEnc.progress |
TTA | TTA | 2.3 | tta.exe | yes | no | GetProgress_TtaEnc.progress |
TAKC | TAK | 2.3.0 | takc.exe | yes | no | - none - |
FFDCAENC | DTS | 2.1.3 | ffdcaenc.exe | yes | yes | GetProgress_FFdcaEnc.progress |
EAC3TO | AC3 | 3.34 | eac3to.exe | no | no | GetProgress_Eac3toEnc |
EAC3TO | DTS | 3.34 | eac3to.exe | no | no | GetProgress_Eac3toEnc |
REFALAC | M4A | 1.64 | refalac.exe | yes | no | GetProgress_RefalacEnc.progress |
TWOLAME | MP2 | 0.3.13 | twolame.exe | no | no | GetProgress_TwoLAME.progress |
Decoders
Name | Extension | Version | Executable | In Pipe | Out Pipe | Progress function |
---|---|---|---|---|---|---|
LAME | MP1 | 3.100 | lame.exe | yes | yes | GetProgress_LameDec.progress |
LAME | MP2 | 3.100 | lame.exe | yes | yes | GetProgress_LameDec.progress |
LAME | MP3 | 3.100 | lame.exe | yes | yes | GetProgress_LameDec.progress |
MPCDEC | MPC | 1.0 | mpcdec.exe | no | no | GetProgress_MpcDec.progress |
MPCDEC | MPP | 1.0 | mpcdec.exe | no | no | GetProgress_MpcDec.progress |
MPCDEC | MP+ | 1.0 | mpcdec.exe | no | no | GetProgress_MpcDec.progress |
FAAD | AAC | faad2-20100614 | faad.exe | no | yes | GetProgress_FaadDec.progress |
QAAC | AAC | 2.64 | qaac.exe | no | no | GetProgress_QaacDec.progress |
QAAC | M4A | 2.64 | qaac.exe | no | no | GetProgress_QaacDec.progress |
NEROAACDEC | MP4 | 1.5.1 | neroAacDec.exe | no | yes | - none - |
NEROAACDEC | M4A | 1.5.1 | neroAacDec.exe | no | yes | - none - |
OPUSDEC | OPUS | 1.2.1-35 | opusdec.exe | yes | no | GetProgress_OpusDec.progress |
OGGDEC | OGG | 1.10.1 | oggdec.exe | no | no | GetProgress_OggDec.progress |
FLAC | FLAC | 1.3.2 | flac.exe | yes | no | GetProgress_FlacDec.progress |
WVUNPACK | WV | 5.1.0 | wvunpack.exe | no | no | GetProgress_WvUnpackDec.progress |
LA | LA | 0.4b | la.exe | yes | no | GetProgress_LaDec.progress |
MAC | APE | 4.18 | mac.exe | no | no | GetProgress_MacDec.progress |
MAC | MAC | 4.18 | mac.exe | no | no | GetProgress_MacDec.progress |
OFR | OFR | 5.100 | ofr.exe | yes | no | GetProgress_OfrDec.progress |
TTA | TTA | 2.3 | tta.exe | no | yes | GetProgress_TtaDec.progress |
TAKC | TAK | 2.3.0 | takc.exe | no | yes | - none - |
FFMPEG | AC3 | 3.4 | ffmpeg.exe | yes | yes | - none - |
FFMPEG | EAC3 | 3.4 | ffmpeg.exe | yes | yes | - none - |
FFMPEG | DTS | 3.4 | ffmpeg.exe | yes | yes | - none - |
FFMPEG | DTSHD | 3.4 | ffmpeg.exe | yes | yes | - none - |
FFMPEG | TRUEHD | 3.4 | ffmpeg.exe | yes | yes | - none - |
FFMPEG | MKA | 3.4 | ffmpeg.exe | yes | yes | - none - |
AVSDEC | AVS | 2.3 | AvsDec.exe | no | no | GetProgress_AvsDec.progress |
REWAVI | AVS | 0.06 | rewavi.exe | no | yes | GetProgress_ReWaviDec.progress |
REWAVI | AVI | 0.06 | rewavi.exe | no | yes | GetProgress_ReWaviDec.progress |
Tool downloads
To get required command-line tools use Configure Tools
dialog. Use the Download Selected
button to download selected tools.
For more information about tools please see the wiki page.
There is also available PowerShell download script for all supported tools.
Open up a Powershell prompt and execute the download script:
PS> .\download.ps1 -Path "Tools"
The -Path
parameter is optional and if not provided the script will download to the current directory.
If you having problems running the PowerShell download.ps1
script see this instructions.
Configuration files
- Program configuration files are stored in
%appdata%\BatchEncoder
folder for installed version. - Downloaded tool are stored in
%appdata%\BatchEncoder\tools
folder for installed version. - To enable portable mode create empty file
BatchEncoder.portable
in same directory asBatchEncoder.exe
file. - Program configuration files are stored in
.\BatchEncoder
folder for portable version. - Downloaded tool are stored in
.\BatchEncoder\tools
folder for portable version. - System registry is not used to store program settings.
- Configuration file are in
XML
text format withUTF-8
encoding.
Files extensions:
- .xml - Any configuration file
- .options - Program options
- .formats - Encoder and decoder formats definition
- .format - Encoder and decoder format definition
- .presets - Predefined format presets definition
- .tools - Encoder and decoder tools definition
- .tool - Encoder and decoder tool definition
- .items - Input file items
- .progress - Progress function Lua scripts
- .language - Language translation strings
Use only UTF-8
compatible text editors (e.g. Notepad) to edit xml configuration files.
Default configuration files
The default configuration files can be found here.
Output path format
Possible output path
configurations:
""
-> empty string is same as$SourceDirectory$
$SourceDirectory$
-> same asSourceDirectory
\$Name$
.$Ext$
$SourceDirectory$
\$Name$
.$Ext$
$SourceDirectory$
\$Name$
_converted.$Ext$
$SourceDirectory$
\Converted\$Name$
.$Ext$
- C:\Output -> same as C:\Output\Path\
$Name$
.$Ext$
- C:\Output\
$Name$
.$Ext$
- C:\Output\
$Name$
_converted.$Ext$
Variables:
$SourceDirectory$
- input file path.$Name$
- input item name.$Ext$
- output format extension.
You can add also custom text inside output path
.
Valid output path
configurations:
- If output path is empty only input file directory is used (name and extension are added automatically).
- If
$SourceDirectory$
,$Name$
and$Ext$
variables are missing full output path must be provided by user (ignore input file path and variables) - If
$SourceDirectory$
,$Name$
and$Ext$
variables are present input source file path is used with itemName
and output format extension. - If
$SourceDirectory$
is missing and$Name$
and$Ext$
variables are present itemName
and output format extension are used (full output path must be provided by user, if not program writes output files to the BatchEncoder directory). - If only
$SourceDirectory$
variable is present input source file path is used (name and extension are added automatically)
Format specification
Template format
Variable | Description |
---|---|
$EXE | Executable path replaced with format path attribute. |
$OPTIONS | Executable command-line options replaced with preset options attribute. |
$INFILE | Input file path (if pipes are supported - is automatically used). |
$OUTFILE | Output file path (if pipes are supported - is automatically used). |
$OUTPATH | Output path. |
The output file name is generated from the combination of output path, item name
attribute and output format extension
attribute.
Default template format order is $EXE $OPTIONS $INFILE $OUTFILE
.
You can also add custom options (additional command-line parameters) and text inside the template
string.
Type, input and output extensions
BatchEncoder does support file trans-coding. To enable this you have to configure proper Decoder
formats.
BatchEncoder will chech input file extensions and if Encoder
format Input extensions
(multiple extension are supported,
separated by comma ,
e.g.: WAV,WV,CAF,W64,DFF,DSF, but only one Output extension
e.g. WV) does not match the input file extension
than BatchEncoder will search for Decoder
that does support this input file extension.
Pipes configuration
Pipes configuration provides information to BatchEncoder whether the command-line tool has support to read/write data from/to stdin/stdout pipes.
- The input pipe means that encoder/decoder can directly read dat from stdin and does not need input file name.
- The output pipe means that encoder/decoder can directly write data to stdout and does not need output file name.
- When encoder/decoder supports input pipe BatchEncoder reads file data and streams this data into encoder/decoder input pipe (stdin).
- When encoder/decoder supports output pipe BatchEncoder writes data to a file using encoder/decoder output pipe stream (stdout).
- Usually you can specify pipe support in command-line options by using "-" instead of input/output file name.
The input pipes support allows BatchEncoder to get current progress status by counting read bytes, instead of relying on console text output (this is done by reading encoder/decoder stderr pipe output).
To get console output BatchEncoder is parsing text read from stderr pipe and uses provided GetProgress function for specific tool. There are cases when stderr output is delayed by tool (stderr pipe buffer is not flushed) and resulting in progress status can be delay.
Also when you want to do more complicated operations like transscoding you can for example connect pipes between one encoder output (stdout) and others decoder input (stdin). This case is not yet support by BatchEncoder.
The best case scenario is when encoder/decoder tool does support both input and output pipes, this gives BatchEncoder more control over encoding/decoding and trans-coding processes, also in case of trans-coding you do not need temporary files as data can be streamed between tools directly without temporary storage and in result you can get much better performance.
Unfortunately not all command-line tools provide support for pipes, some only support stdin pipes (mainly encoders) and some support only stdout pipes (mainly decoders). In this cases BatchEncoder depending on pipes input/output and progress function configuration selects best possible option to do conversion process.
Sometimes you will not get nice progress during conversion, nonetheless you will successfully convert files.
Progress function format
Progress function are simple Lua scripts with defined GetProgress
function. The progress
file extension is used instead of lua
.
The progress function signature:
function GetProgress(s)
Most of the Lua progress scripts are using string manipulation with patterns.
For a quick start use one of the existing progress scripts.
Default progress functions
The default progress functions sources can be found here.
Translations
- English (en-US) by Wiesław Šoltés
- Polish (pl-PL) by Wiesław Šoltés
- Korean (ko-KR) by JaeHyung Lee
- Spanish (es-ES) by Overdrive80, tebasuna51
- Japanese (ja-JP) by nihongoka.com
Use only UTF-8 compatible text editors (e.g. Notepad or Visual Studio Code) to edit xml language files and use special characters in XML.
Language files have to be placed in the same directory as the BatchEncoder.exe
executable to be loaded automatically.
Language files can also be edited in dedicated LanguageEditor program. LanguageEditor requires .NET Framework 4.5 and Windows 7 SP1 or above.
The default language files can be found here.
Troubleshooting
To report issues please use issues tracker.
For more informations and help please visit this forum thread.
Sources
Sources are available in the git source code repository.
Build
Prerequisites
git clone https://github.com/wieslawsoltes/BatchEncoder.git
cd BatchEncoder
git submodule update --init --recursive
Install Visual Studio 2017
Windows 7 SDK
For Windows XP compatibility program is compiled using Platform Toolset
for Visual Studio 2017 - Windows XP (v141_xp)
.
For more details please read Configuring Programs for Windows XP.
Build Solution
Open BatchEncoder.sln in Visual Studios 2017 or above.
Dependencies
License
BatchEncoder (Audio Conversion GUI) is licensed under the MIT license.