8e924e69ba | ||
---|---|---|
config | ||
editor | ||
formats | ||
lang | ||
progress | ||
screenshots | ||
scripts | ||
setup | ||
src | ||
.gitattributes | ||
.gitignore | ||
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 | 1.4 | BatchEncoder-1.4-Win32.exe |
Windows 64-bit | Installer | 1.4 | BatchEncoder-1.4-x64.exe |
Windows 32-bit | Portable | 1.4 | BatchEncoder-1.4-Win32.zip |
Windows 64-bit | Portable | 1.4 | BatchEncoder-1.4-x64.zip |
Mirrors
CI Builds
Download bleeding edge builds from the CI server.
Download LanguageEditor
Platform | Type | Version | Download |
---|---|---|---|
Windows .NET4.5 (Any CPU) | Portable | 1.0.0 | LanguageEditor-1.0.0-AnyCPU.zip |
Windows .NET4.5 (32-bit) | Portable | 1.0.0 | LanguageEditor-1.0.0-x86.zip |
Windows .NET4.5 (64-bit) | Portable | 1.0.0 | LanguageEditor-1.0.0-x64.zip |
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 formats
Configure presets
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.99.5 | 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.62 | qaac.exe | yes | no | GetProgress_QaacEnc.progress |
QAAC | M4A | 2.62 | 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-alpha | 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.2.2 | ffmpeg.exe | yes | yes | - none - |
FLAC | FLAC | 1.3.2 | flac.exe | yes | no | GetProgress_FlacEnc.progress |
WAVPACK | WV | 5.0.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 |
Decoders
Name | Extension | Version | Executable | In Pipe | Out Pipe | Progress function |
---|---|---|---|---|---|---|
LAME | MP1 | 3.99.5 | lame.exe | yes | yes | GetProgress_LameDec.progress |
LAME | MP2 | 3.99.5 | lame.exe | yes | yes | GetProgress_LameDec.progress |
LAME | MP3 | 3.99.5 | 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.62 | qaac.exe | no | no | GetProgress_QaacDec.progress |
QAAC | M4A | 2.62 | 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-alpha | 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.0.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.2.2 | ffmpeg.exe | yes | yes | - none - |
FFMPEG | EAC3 | 3.2.2 | ffmpeg.exe | yes | yes | - none - |
FFMPEG | DTS | 3.2.2 | ffmpeg.exe | yes | yes | - none - |
FFMPEG | DTSHD | 3.2.2 | ffmpeg.exe | yes | yes | - none - |
FFMPEG | TRUEHD | 3.2.2 | ffmpeg.exe | yes | yes | - none - |
Tool downloads
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.
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.
Configuration files
- Program configuration files are used to store settings.
- System registry is not used to store any program settings so program can be used as portable without installation.
- Configuration is stored as XML text files with UTF-8 encoding.
Files extensions:
- .xml - Any configuration file
- .options - Program options
- .formats - Encoder and decoder formats
- .presets - Predefined format presets
- .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)
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
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.
Default language files
The default language files can be found here.
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). |
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.
BatchEncoder Sources
Sources are available in the git source code repository.
Building BatchEncoder
To build program from sources you will need the following components:
Microsoft Visual Studio 2017
For building BatchEncoder.sln
solution use 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.
TinyXml-2 Library
Required TinyXml-2 v5.0.1 sources are included in src\xml
directory.
Lua Library
Required Lua v5.3.4 sources are included in src\lua\lua
directory.
License
BatchEncoder (Audio Conversion GUI) is licensed under the MIT license.