diff --git a/src/main/java/net/bramp/ffmpeg/builder/AudioCodec.java b/src/main/java/net/bramp/ffmpeg/builder/AudioCodec.java
new file mode 100644
index 00000000..c83e5e5a
--- /dev/null
+++ b/src/main/java/net/bramp/ffmpeg/builder/AudioCodec.java
@@ -0,0 +1,425 @@
+package net.bramp.ffmpeg.builder;
+/**The available codecs may vary depending on the version of FFmpeg.
+ *
+ * you can get a list of available codecs through use {@link net.bramp.ffmpeg.FFmpeg#codecs()}.
+ *
+ * @see net.bramp.ffmpeg.FFmpeg#codecs()
+ * @author van1164
+ * */
+public class AudioCodec {
+
+ /**4GV (Fourth Generation Vocoder)*/
+ public static final String GV = "4gv";
+ /**8SVX exponential*/
+ public static final String SVX_EXP = "8svx_exp";
+ /**8SVX fibonacci*/
+ public static final String SVX_FIB = "8svx_fib";
+ /**AAC (Advanced Audio Coding) (decoders: aac aac_fixed) (encoders: aac aac_mf)*/
+ public static final String AAC = "aac";
+ /**AAC LATM (Advanced Audio Coding LATM syntax)*/
+ public static final String AAC_LATM = "aac_latm";
+ /**ATSC A/52A (AC-3) (decoders: ac3 ac3_fixed) (encoders: ac3 ac3_fixed ac3_mf)*/
+ public static final String AC3 = "ac3";
+ /**AC-4*/
+ public static final String AC4 = "ac4";
+ /**Sipro ACELP.KELVIN*/
+ public static final String ACELP_KELVIN = "acelp.kelvin";
+ /**ADPCM 4X Movie*/
+ public static final String ADPCM_4XM = "adpcm_4xm";
+ /**SEGA CRI ADX ADPCM*/
+ public static final String ADPCM_ADX = "adpcm_adx";
+ /**ADPCM Nintendo Gamecube AFC*/
+ public static final String ADPCM_AFC = "adpcm_afc";
+ /**ADPCM AmuseGraphics Movie AGM*/
+ public static final String ADPCM_AGM = "adpcm_agm";
+ /**ADPCM Yamaha AICA*/
+ public static final String ADPCM_AICA = "adpcm_aica";
+ /**ADPCM Argonaut Games*/
+ public static final String ADPCM_ARGO = "adpcm_argo";
+ /**ADPCM Creative Technology*/
+ public static final String ADPCM_CT = "adpcm_ct";
+ /**ADPCM Nintendo Gamecube DTK*/
+ public static final String ADPCM_DTK = "adpcm_dtk";
+ /**ADPCM Electronic Arts*/
+ public static final String ADPCM_EA = "adpcm_ea";
+ /**ADPCM Electronic Arts Maxis CDROM XA*/
+ public static final String ADPCM_EA_MAXIS_XA = "adpcm_ea_maxis_xa";
+ /**ADPCM Electronic Arts R1*/
+ public static final String ADPCM_EA_R1 = "adpcm_ea_r1";
+ /**ADPCM Electronic Arts R2*/
+ public static final String ADPCM_EA_R2 = "adpcm_ea_r2";
+ /**ADPCM Electronic Arts R3*/
+ public static final String ADPCM_EA_R3 = "adpcm_ea_r3";
+ /**ADPCM Electronic Arts XAS*/
+ public static final String ADPCM_EA_XAS = "adpcm_ea_xas";
+ /**G.722 ADPCM (decoders: g722) (encoders: g722)*/
+ public static final String ADPCM_G722 = "adpcm_g722";
+ /**G.726 ADPCM (decoders: g726) (encoders: g726)*/
+ public static final String ADPCM_G726 = "adpcm_g726";
+ /**G.726 ADPCM little-endian (decoders: g726le) (encoders: g726le)*/
+ public static final String ADPCM_G726LE = "adpcm_g726le";
+ /**ADPCM IMA Acorn Replay*/
+ public static final String ADPCM_IMA_ACORN = "adpcm_ima_acorn";
+ /**ADPCM IMA High Voltage Software ALP*/
+ public static final String ADPCM_IMA_ALP = "adpcm_ima_alp";
+ /**ADPCM IMA AMV*/
+ public static final String ADPCM_IMA_AMV = "adpcm_ima_amv";
+ /**ADPCM IMA CRYO APC*/
+ public static final String ADPCM_IMA_APC = "adpcm_ima_apc";
+ /**ADPCM IMA Ubisoft APM*/
+ public static final String ADPCM_IMA_APM = "adpcm_ima_apm";
+ /**ADPCM IMA Cunning Developments*/
+ public static final String ADPCM_IMA_CUNNING = "adpcm_ima_cunning";
+ /**ADPCM IMA Eurocom DAT4*/
+ public static final String ADPCM_IMA_DAT4 = "adpcm_ima_dat4";
+ /**ADPCM IMA Duck DK3*/
+ public static final String ADPCM_IMA_DK3 = "adpcm_ima_dk3";
+ /**ADPCM IMA Duck DK4*/
+ public static final String ADPCM_IMA_DK4 = "adpcm_ima_dk4";
+ /**ADPCM IMA Electronic Arts EACS*/
+ public static final String ADPCM_IMA_EA_EACS = "adpcm_ima_ea_eacs";
+ /**ADPCM IMA Electronic Arts SEAD*/
+ public static final String ADPCM_IMA_EA_SEAD = "adpcm_ima_ea_sead";
+ /**ADPCM IMA Funcom ISS*/
+ public static final String ADPCM_IMA_ISS = "adpcm_ima_iss";
+ /**ADPCM IMA MobiClip MOFLEX*/
+ public static final String ADPCM_IMA_MOFLEX = "adpcm_ima_moflex";
+ /**ADPCM IMA Capcom's MT Framework*/
+ public static final String ADPCM_IMA_MTF = "adpcm_ima_mtf";
+ /**ADPCM IMA Dialogic OKI*/
+ public static final String ADPCM_IMA_OKI = "adpcm_ima_oki";
+ /**ADPCM IMA QuickTime*/
+ public static final String ADPCM_IMA_QT = "adpcm_ima_qt";
+ /**ADPCM IMA Radical*/
+ public static final String ADPCM_IMA_RAD = "adpcm_ima_rad";
+ /**ADPCM IMA Loki SDL MJPEG*/
+ public static final String ADPCM_IMA_SMJPEG = "adpcm_ima_smjpeg";
+ /**ADPCM IMA Simon & Schuster Interactive*/
+ public static final String ADPCM_IMA_SSI = "adpcm_ima_ssi";
+ /**ADPCM IMA WAV*/
+ public static final String ADPCM_IMA_WAV = "adpcm_ima_wav";
+ /**ADPCM IMA Westwood*/
+ public static final String ADPCM_IMA_WS = "adpcm_ima_ws";
+ /**ADPCM Microsoft*/
+ public static final String ADPCM_MS = "adpcm_ms";
+ /**ADPCM MTAF*/
+ public static final String ADPCM_MTAF = "adpcm_mtaf";
+ /**ADPCM Playstation*/
+ public static final String ADPCM_PSX = "adpcm_psx";
+ /**ADPCM Sound Blaster Pro 2-bit*/
+ public static final String ADPCM_SBPRO_2 = "adpcm_sbpro_2";
+ /**ADPCM Sound Blaster Pro 2.6-bit*/
+ public static final String ADPCM_SBPRO_3 = "adpcm_sbpro_3";
+ /**ADPCM Sound Blaster Pro 4-bit*/
+ public static final String ADPCM_SBPRO_4 = "adpcm_sbpro_4";
+ /**ADPCM Shockwave Flash*/
+ public static final String ADPCM_SWF = "adpcm_swf";
+ /**ADPCM Nintendo THP*/
+ public static final String ADPCM_THP = "adpcm_thp";
+ /**ADPCM Nintendo THP (Little-Endian)*/
+ public static final String ADPCM_THP_LE = "adpcm_thp_le";
+ /**LucasArts VIMA audio*/
+ public static final String ADPCM_VIMA = "adpcm_vima";
+ /**ADPCM CDROM XA*/
+ public static final String ADPCM_XA = "adpcm_xa";
+ /**ADPCM Konami XMD*/
+ public static final String ADPCM_XMD = "adpcm_xmd";
+ /**ADPCM Yamaha*/
+ public static final String ADPCM_YAMAHA = "adpcm_yamaha";
+ /**ADPCM Zork*/
+ public static final String ADPCM_ZORK = "adpcm_zork";
+ /**ALAC (Apple Lossless Audio Codec)*/
+ public static final String ALAC = "alac";
+ /**AMR-NB (Adaptive Multi-Rate NarrowBand) (decoders: amrnb libopencore_amrnb) (encoders: libopencore_amrnb)*/
+ public static final String AMR_NB = "amr_nb";
+ /**AMR-WB (Adaptive Multi-Rate WideBand) (decoders: amrwb libopencore_amrwb) (encoders: libvo_amrwbenc)*/
+ public static final String AMR_WB = "amr_wb";
+ /**Null audio codec*/
+ public static final String ANULL = "anull";
+ /**Marian's A-pac audio*/
+ public static final String APAC = "apac";
+ /**Monkey's Audio*/
+ public static final String APE = "ape";
+ /**aptX (Audio Processing Technology for Bluetooth)*/
+ public static final String APTX = "aptx";
+ /**aptX HD (Audio Processing Technology for Bluetooth)*/
+ public static final String APTX_HD = "aptx_hd";
+ /**ATRAC1 (Adaptive TRansform Acoustic Coding)*/
+ public static final String ATRAC1 = "atrac1";
+ /**ATRAC3 (Adaptive TRansform Acoustic Coding 3)*/
+ public static final String ATRAC3 = "atrac3";
+ /**ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless)*/
+ public static final String ATRAC3AL = "atrac3al";
+ /**ATRAC3+ (Adaptive TRansform Acoustic Coding 3+) (decoders: atrac3plus)*/
+ public static final String ATRAC3P = "atrac3p";
+ /**ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless) (decoders: atrac3plusal)*/
+ public static final String ATRAC3PAL = "atrac3pal";
+ /**ATRAC9 (Adaptive TRansform Acoustic Coding 9)*/
+ public static final String ATRAC9 = "atrac9";
+ /**On2 Audio for Video Codec (decoders: on2avc)*/
+ public static final String AVC = "avc";
+ /**Bink Audio (DCT)*/
+ public static final String BINKAUDIO_DCT = "binkaudio_dct";
+ /**Bink Audio (RDFT)*/
+ public static final String BINKAUDIO_RDFT = "binkaudio_rdft";
+ /**Discworld II BMV audio*/
+ public static final String BMV_AUDIO = "bmv_audio";
+ /**Bonk audio*/
+ public static final String BONK = "bonk";
+ /**DPCM Cuberoot-Delta-Exact*/
+ public static final String CBD2_DPCM = "cbd2_dpcm";
+ /**Constrained Energy Lapped Transform (CELT)*/
+ public static final String CELT = "celt";
+ /**codec2 (very low bitrate speech codec)*/
+ public static final String CODEC2 = "codec2";
+ /**RFC 3389 Comfort Noise*/
+ public static final String COMFORTNOISE = "comfortnoise";
+ /**Cook / Cooker / Gecko (RealAudio G2)*/
+ public static final String COOK = "cook";
+ /**DPCM Xilam DERF*/
+ public static final String DERF_DPCM = "derf_dpcm";
+ /**DFPWM (Dynamic Filter Pulse Width Modulation)*/
+ public static final String DFPWM = "dfpwm";
+ /**Dolby E*/
+ public static final String DOLBY_E = "dolby_e";
+ /**DSD (Direct Stream Digital), least significant bit first*/
+ public static final String DSD_LSBF = "dsd_lsbf";
+ /**DSD (Direct Stream Digital), least significant bit first, planar*/
+ public static final String DSD_LSBF_PLANAR = "dsd_lsbf_planar";
+ /**DSD (Direct Stream Digital), most significant bit first*/
+ public static final String DSD_MSBF = "dsd_msbf";
+ /**DSD (Direct Stream Digital), most significant bit first, planar*/
+ public static final String DSD_MSBF_PLANAR = "dsd_msbf_planar";
+ /**Delphine Software International CIN audio*/
+ public static final String DSICINAUDIO = "dsicinaudio";
+ /**Digital Speech Standard - Standard Play mode (DSS SP)*/
+ public static final String DSS_SP = "dss_sp";
+ /**DST (Direct Stream Transfer)*/
+ public static final String DST = "dst";
+ /**DCA (DTS Coherent Acoustics) (decoders: dca) (encoders: dca)*/
+ public static final String DTS = "dts";
+ /**DV audio*/
+ public static final String DVAUDIO = "dvaudio";
+ /**ATSC A/52B (AC-3, E-AC-3)*/
+ public static final String EAC3 = "eac3";
+ /**EVRC (Enhanced Variable Rate Codec)*/
+ public static final String EVRC = "evrc";
+ /**MobiClip FastAudio*/
+ public static final String FASTAUDIO = "fastaudio";
+ /**FLAC (Free Lossless Audio Codec)*/
+ public static final String FLAC = "flac";
+ /**FTR Voice*/
+ public static final String FTR = "ftr";
+ /**G.723.1*/
+ public static final String G723_1 = "g723_1";
+ /**G.729*/
+ public static final String G729 = "g729";
+ /**DPCM Gremlin*/
+ public static final String GREMLIN_DPCM = "gremlin_dpcm";
+ /**GSM (decoders: gsm libgsm) (encoders: libgsm)*/
+ public static final String GSM = "gsm";
+ /**GSM Microsoft variant (decoders: gsm_ms libgsm_ms) (encoders: libgsm_ms)*/
+ public static final String GSM_MS = "gsm_ms";
+ /**CRI HCA*/
+ public static final String HCA = "hca";
+ /**HCOM Audio*/
+ public static final String HCOM = "hcom";
+ /**IAC (Indeo Audio Coder)*/
+ public static final String IAC = "iac";
+ /**iLBC (Internet Low Bitrate Codec)*/
+ public static final String ILBC = "ilbc";
+ /**IMC (Intel Music Coder)*/
+ public static final String IMC = "imc";
+ /**DPCM Interplay*/
+ public static final String INTERPLAY_DPCM = "interplay_dpcm";
+ /**Interplay ACM*/
+ public static final String INTERPLAYACM = "interplayacm";
+ /**MACE (Macintosh Audio Compression/Expansion) 3:1*/
+ public static final String MACE3 = "mace3";
+ /**MACE (Macintosh Audio Compression/Expansion) 6:1*/
+ public static final String MACE6 = "mace6";
+ /**Voxware MetaSound*/
+ public static final String METASOUND = "metasound";
+ /**Micronas SC-4 Audio*/
+ public static final String MISC4 = "misc4";
+ /**MLP (Meridian Lossless Packing)*/
+ public static final String MLP = "mlp";
+ /**MP1 (MPEG audio layer 1) (decoders: mp1 mp1float)*/
+ public static final String MP1 = "mp1";
+ /**MP2 (MPEG audio layer 2) (decoders: mp2 mp2float) (encoders: mp2 mp2fixed)*/
+ public static final String MP2 = "mp2";
+ /**MP3 (MPEG audio layer 3) (decoders: mp3float mp3) (encoders: libmp3lame mp3_mf)*/
+ public static final String MP3 = "mp3";
+ /**ADU (Application Data Unit) MP3 (MPEG audio layer 3) (decoders: mp3adufloat mp3adu)*/
+ public static final String MP3ADU = "mp3adu";
+ /**MP3onMP4 (decoders: mp3on4float mp3on4)*/
+ public static final String MP3ON4 = "mp3on4";
+ /**MPEG-4 Audio Lossless Coding (ALS) (decoders: als)*/
+ public static final String MP4ALS = "mp4als";
+ /**MPEG-H 3D Audio*/
+ public static final String MPEGH_3D_AUDIO = "mpegh_3d_audio";
+ /**MSN Siren*/
+ public static final String MSNSIREN = "msnsiren";
+ /**Musepack SV7 (decoders: mpc7)*/
+ public static final String MUSEPACK7 = "musepack7";
+ /**Musepack SV8 (decoders: mpc8)*/
+ public static final String MUSEPACK8 = "musepack8";
+ /**Nellymoser Asao*/
+ public static final String NELLYMOSER = "nellymoser";
+ /**Opus (Opus Interactive Audio Codec) (decoders: opus libopus) (encoders: opus libopus)*/
+ public static final String OPUS = "opus";
+ /**OSQ (Original Sound Quality)*/
+ public static final String OSQ = "osq";
+ /**Amazing Studio Packed Animation File Audio*/
+ public static final String PAF_AUDIO = "paf_audio";
+ /**PCM A-law / G.711 A-law*/
+ public static final String PCM_ALAW = "pcm_alaw";
+ /**PCM signed 16|20|24-bit big-endian for Blu-ray media*/
+ public static final String PCM_BLURAY = "pcm_bluray";
+ /**PCM signed 20|24-bit big-endian*/
+ public static final String PCM_DVD = "pcm_dvd";
+ /**PCM 16.8 floating point little-endian*/
+ public static final String PCM_F16LE = "pcm_f16le";
+ /**PCM 24.0 floating point little-endian*/
+ public static final String PCM_F24LE = "pcm_f24le";
+ /**PCM 32-bit floating point big-endian*/
+ public static final String PCM_F32BE = "pcm_f32be";
+ /**PCM 32-bit floating point little-endian*/
+ public static final String PCM_F32LE = "pcm_f32le";
+ /**PCM 64-bit floating point big-endian*/
+ public static final String PCM_F64BE = "pcm_f64be";
+ /**PCM 64-bit floating point little-endian*/
+ public static final String PCM_F64LE = "pcm_f64le";
+ /**PCM signed 20-bit little-endian planar*/
+ public static final String PCM_LXF = "pcm_lxf";
+ /**PCM mu-law / G.711 mu-law*/
+ public static final String PCM_MULAW = "pcm_mulaw";
+ /**PCM signed 16-bit big-endian*/
+ public static final String PCM_S16BE = "pcm_s16be";
+ /**PCM signed 16-bit big-endian planar*/
+ public static final String PCM_S16BE_PLANAR = "pcm_s16be_planar";
+ /**PCM signed 16-bit little-endian*/
+ public static final String PCM_S16LE = "pcm_s16le";
+ /**PCM signed 16-bit little-endian planar*/
+ public static final String PCM_S16LE_PLANAR = "pcm_s16le_planar";
+ /**PCM signed 24-bit big-endian*/
+ public static final String PCM_S24BE = "pcm_s24be";
+ /**PCM D-Cinema audio signed 24-bit*/
+ public static final String PCM_S24DAUD = "pcm_s24daud";
+ /**PCM signed 24-bit little-endian*/
+ public static final String PCM_S24LE = "pcm_s24le";
+ /**PCM signed 24-bit little-endian planar*/
+ public static final String PCM_S24LE_PLANAR = "pcm_s24le_planar";
+ /**PCM signed 32-bit big-endian*/
+ public static final String PCM_S32BE = "pcm_s32be";
+ /**PCM signed 32-bit little-endian*/
+ public static final String PCM_S32LE = "pcm_s32le";
+ /**PCM signed 32-bit little-endian planar*/
+ public static final String PCM_S32LE_PLANAR = "pcm_s32le_planar";
+ /**PCM signed 64-bit big-endian*/
+ public static final String PCM_S64BE = "pcm_s64be";
+ /**PCM signed 64-bit little-endian*/
+ public static final String PCM_S64LE = "pcm_s64le";
+ /**PCM signed 8-bit*/
+ public static final String PCM_S8 = "pcm_s8";
+ /**PCM signed 8-bit planar*/
+ public static final String PCM_S8_PLANAR = "pcm_s8_planar";
+ /**PCM SGA*/
+ public static final String PCM_SGA = "pcm_sga";
+ /**PCM unsigned 16-bit big-endian*/
+ public static final String PCM_U16BE = "pcm_u16be";
+ /**PCM unsigned 16-bit little-endian*/
+ public static final String PCM_U16LE = "pcm_u16le";
+ /**PCM unsigned 24-bit big-endian*/
+ public static final String PCM_U24BE = "pcm_u24be";
+ /**PCM unsigned 24-bit little-endian*/
+ public static final String PCM_U24LE = "pcm_u24le";
+ /**PCM unsigned 32-bit big-endian*/
+ public static final String PCM_U32BE = "pcm_u32be";
+ /**PCM unsigned 32-bit little-endian*/
+ public static final String PCM_U32LE = "pcm_u32le";
+ /**PCM unsigned 8-bit*/
+ public static final String PCM_U8 = "pcm_u8";
+ /**PCM Archimedes VIDC*/
+ public static final String PCM_VIDC = "pcm_vidc";
+ /**QCELP / PureVoice*/
+ public static final String QCELP = "qcelp";
+ /**QDesign Music Codec 2*/
+ public static final String QDM2 = "qdm2";
+ /**QDesign Music*/
+ public static final String QDMC = "qdmc";
+ /**RealAudio 1.0 (14.4K) (decoders: real_144) (encoders: real_144)*/
+ public static final String RA_144 = "ra_144";
+ /**RealAudio 2.0 (28.8K) (decoders: real_288)*/
+ public static final String RA_288 = "ra_288";
+ /**RealAudio Lossless*/
+ public static final String RALF = "ralf";
+ /**RKA (RK Audio)*/
+ public static final String RKA = "rka";
+ /**DPCM id RoQ*/
+ public static final String ROQ_DPCM = "roq_dpcm";
+ /**SMPTE 302M*/
+ public static final String S302M = "s302m";
+ /**SBC (low-complexity subband codec)*/
+ public static final String SBC = "sbc";
+ /**DPCM Squareroot-Delta-Exact*/
+ public static final String SDX2_DPCM = "sdx2_dpcm";
+ /**Shorten*/
+ public static final String SHORTEN = "shorten";
+ /**RealAudio SIPR / ACELP.NET*/
+ public static final String SIPR = "sipr";
+ /**Siren*/
+ public static final String SIREN = "siren";
+ /**Smacker audio (decoders: smackaud)*/
+ public static final String SMACKAUDIO = "smackaudio";
+ /**SMV (Selectable Mode Vocoder)*/
+ public static final String SMV = "smv";
+ /**DPCM Sol*/
+ public static final String SOL_DPCM = "sol_dpcm";
+ /**Sonic*/
+ public static final String SONIC = "sonic";
+ /**Sonic lossless*/
+ public static final String SONICLS = "sonicls";
+ /**Speex (decoders: speex libspeex) (encoders: libspeex)*/
+ public static final String SPEEX = "speex";
+ /**TAK (Tom's lossless Audio Kompressor)*/
+ public static final String TAK = "tak";
+ /**TrueHD*/
+ public static final String TRUEHD = "truehd";
+ /**DSP Group TrueSpeech*/
+ public static final String TRUESPEECH = "truespeech";
+ /**TTA (True Audio)*/
+ public static final String TTA = "tta";
+ /**VQF TwinVQ*/
+ public static final String TWINVQ = "twinvq";
+ /**Sierra VMD audio*/
+ public static final String VMDAUDIO = "vmdaudio";
+ /**Vorbis (decoders: vorbis libvorbis) (encoders: vorbis libvorbis)*/
+ public static final String VORBIS = "vorbis";
+ /**DPCM Marble WADY*/
+ public static final String WADY_DPCM = "wady_dpcm";
+ /**Waveform Archiver*/
+ public static final String WAVARC = "wavarc";
+ /**Wave synthesis pseudo-codec*/
+ public static final String WAVESYNTH = "wavesynth";
+ /**WavPack*/
+ public static final String WAVPACK = "wavpack";
+ /**Westwood Audio (SND1) (decoders: ws_snd1)*/
+ public static final String WESTWOOD_SND1 = "westwood_snd1";
+ /**Windows Media Audio Lossless*/
+ public static final String WMALOSSLESS = "wmalossless";
+ /**Windows Media Audio 9 Professional*/
+ public static final String WMAPRO = "wmapro";
+ /**Windows Media Audio 1*/
+ public static final String WMAV1 = "wmav1";
+ /**Windows Media Audio 2*/
+ public static final String WMAV2 = "wmav2";
+ /**Windows Media Audio Voice*/
+ public static final String WMAVOICE = "wmavoice";
+ /**DPCM Xan*/
+ public static final String XAN_DPCM = "xan_dpcm";
+ /**Xbox Media Audio 1*/
+ public static final String XMA1 = "xma1";
+ /**Xbox Media Audio 2*/
+ public static final String XMA2 = "xma2";
+}
\ No newline at end of file
diff --git a/src/main/java/net/bramp/ffmpeg/builder/VideoCodec.java b/src/main/java/net/bramp/ffmpeg/builder/VideoCodec.java
new file mode 100644
index 00000000..7447c1e7
--- /dev/null
+++ b/src/main/java/net/bramp/ffmpeg/builder/VideoCodec.java
@@ -0,0 +1,559 @@
+package net.bramp.ffmpeg.builder;
+/**The available codecs may vary depending on the version of FFmpeg.
+ *
+ * you can get a list of available codecs through use {@link net.bramp.ffmpeg.FFmpeg#codecs()}.
+ *
+ * @see net.bramp.ffmpeg.FFmpeg#codecs()
+ * @author van1164
+ * */
+public class VideoCodec {
+
+ /**Uncompressed 4:2:2 10-bit*/
+ public static final String V = "012v";
+ /**4X Movie*/
+ public static final String XM = "4xm";
+ /**QuickTime 8BPS video*/
+ public static final String BPS = "8bps";
+ /**Multicolor charset for Commodore 64 (encoders: a64multi)*/
+ public static final String A64_MULTI = "a64_multi";
+ /**Multicolor charset for Commodore 64, extended with 5th color (colram) (encoders: a64multi5)*/
+ public static final String A64_MULTI5 = "a64_multi5";
+ /**Autodesk RLE*/
+ public static final String AASC = "aasc";
+ /**Amuse Graphics Movie*/
+ public static final String AGM = "agm";
+ /**Apple Intermediate Codec*/
+ public static final String AIC = "aic";
+ /**Alias/Wavefront PIX image*/
+ public static final String ALIAS_PIX = "alias_pix";
+ /**AMV Video*/
+ public static final String AMV = "amv";
+ /**Deluxe Paint Animation*/
+ public static final String ANM = "anm";
+ /**ASCII/ANSI art*/
+ public static final String ANSI = "ansi";
+ /**APNG (Animated Portable Network Graphics) image*/
+ public static final String APNG = "apng";
+ /**Gryphon's Anim Compressor*/
+ public static final String ARBC = "arbc";
+ /**Argonaut Games Video*/
+ public static final String ARGO = "argo";
+ /**ASUS V1*/
+ public static final String ASV1 = "asv1";
+ /**ASUS V2*/
+ public static final String ASV2 = "asv2";
+ /**Auravision AURA*/
+ public static final String AURA = "aura";
+ /**Auravision Aura 2*/
+ public static final String AURA2 = "aura2";
+ /**Alliance for Open Media AV1 (decoders: libaom-av1 av1 av1_cuvid av1_qsv) (encoders: libaom-av1 av1_nvenc av1_qsv av1_amf)*/
+ public static final String AV1 = "av1";
+ /**Avid AVI Codec*/
+ public static final String AVRN = "avrn";
+ /**Avid 1:1 10-bit RGB Packer*/
+ public static final String AVRP = "avrp";
+ /**AVS (Audio Video Standard) video*/
+ public static final String AVS = "avs";
+ /**AVS2-P2/IEEE1857.4*/
+ public static final String AVS2 = "avs2";
+ /**AVS3-P2/IEEE1857.10*/
+ public static final String AVS3 = "avs3";
+ /**Avid Meridien Uncompressed*/
+ public static final String AVUI = "avui";
+ /**Uncompressed packed MS 4:4:4:4*/
+ public static final String AYUV = "ayuv";
+ /**Bethesda VID video*/
+ public static final String BETHSOFTVID = "bethsoftvid";
+ /**Brute Force & Ignorance*/
+ public static final String BFI = "bfi";
+ /**Bink video*/
+ public static final String BINKVIDEO = "binkvideo";
+ /**Binary text*/
+ public static final String BINTEXT = "bintext";
+ /**Bitpacked*/
+ public static final String BITPACKED = "bitpacked";
+ /**BMP (Windows and OS/2 bitmap)*/
+ public static final String BMP = "bmp";
+ /**Discworld II BMV video*/
+ public static final String BMV_VIDEO = "bmv_video";
+ /**BRender PIX image*/
+ public static final String BRENDER_PIX = "brender_pix";
+ /**Interplay C93*/
+ public static final String C93 = "c93";
+ /**Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile)*/
+ public static final String CAVS = "cavs";
+ /**CD Graphics video*/
+ public static final String CDGRAPHICS = "cdgraphics";
+ /**CDToons video*/
+ public static final String CDTOONS = "cdtoons";
+ /**Commodore CDXL video*/
+ public static final String CDXL = "cdxl";
+ /**GoPro CineForm HD*/
+ public static final String CFHD = "cfhd";
+ /**Cinepak*/
+ public static final String CINEPAK = "cinepak";
+ /**Iterated Systems ClearVideo*/
+ public static final String CLEARVIDEO = "clearvideo";
+ /**Cirrus Logic AccuPak*/
+ public static final String CLJR = "cljr";
+ /**Canopus Lossless Codec*/
+ public static final String CLLC = "cllc";
+ /**Electronic Arts CMV video (decoders: eacmv)*/
+ public static final String CMV = "cmv";
+ /**CPiA video format*/
+ public static final String CPIA = "cpia";
+ /**Cintel RAW*/
+ public static final String CRI = "cri";
+ /**CamStudio (decoders: camstudio)*/
+ public static final String CSCD = "cscd";
+ /**Creative YUV (CYUV)*/
+ public static final String CYUV = "cyuv";
+ /**Daala*/
+ public static final String DAALA = "daala";
+ /**DirectDraw Surface image decoder*/
+ public static final String DDS = "dds";
+ /**Chronomaster DFA*/
+ public static final String DFA = "dfa";
+ /**Dirac (encoders: vc2)*/
+ public static final String DIRAC = "dirac";
+ /**VC3/DNxHD*/
+ public static final String DNXHD = "dnxhd";
+ /**DPX (Digital Picture Exchange) image*/
+ public static final String DPX = "dpx";
+ /**Delphine Software International CIN video*/
+ public static final String DSICINVIDEO = "dsicinvideo";
+ /**DV (Digital Video)*/
+ public static final String DVVIDEO = "dvvideo";
+ /**Feeble Files/ScummVM DXA*/
+ public static final String DXA = "dxa";
+ /**Dxtory*/
+ public static final String DXTORY = "dxtory";
+ /**Resolume DXV*/
+ public static final String DXV = "dxv";
+ /**Escape 124*/
+ public static final String ESCAPE124 = "escape124";
+ /**Escape 130*/
+ public static final String ESCAPE130 = "escape130";
+ /**MPEG-5 EVC (Essential Video Coding)*/
+ public static final String EVC = "evc";
+ /**OpenEXR image*/
+ public static final String EXR = "exr";
+ /**FFmpeg video codec #1*/
+ public static final String FFV1 = "ffv1";
+ /**Huffyuv FFmpeg variant*/
+ public static final String FFVHUFF = "ffvhuff";
+ /**Mirillis FIC*/
+ public static final String FIC = "fic";
+ /**FITS (Flexible Image Transport System)*/
+ public static final String FITS = "fits";
+ /**Flash Screen Video v1*/
+ public static final String FLASHSV = "flashsv";
+ /**Flash Screen Video v2*/
+ public static final String FLASHSV2 = "flashsv2";
+ /**Autodesk Animator Flic video*/
+ public static final String FLIC = "flic";
+ /**FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (decoders: flv) (encoders: flv)*/
+ public static final String FLV1 = "flv1";
+ /**FM Screen Capture Codec*/
+ public static final String FMVC = "fmvc";
+ /**Fraps*/
+ public static final String FRAPS = "fraps";
+ /**Forward Uncompressed*/
+ public static final String FRWU = "frwu";
+ /**Go2Meeting*/
+ public static final String G2M = "g2m";
+ /**Gremlin Digital Video*/
+ public static final String GDV = "gdv";
+ /**GEM Raster image*/
+ public static final String GEM = "gem";
+ /**CompuServe GIF (Graphics Interchange Format)*/
+ public static final String GIF = "gif";
+ /**H.261*/
+ public static final String H261 = "h261";
+ /**H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2*/
+ public static final String H263 = "h263";
+ /**Intel H.263*/
+ public static final String H263I = "h263i";
+ /**H.263+ / H.263-1998 / H.263 version 2*/
+ public static final String H263P = "h263p";
+ /**H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid) (encoders: libx264 libx264rgb h264_amf h264_mf h264_nvenc h264_qsv)*/
+ public static final String H264 = "h264";
+ /**Vidvox Hap*/
+ public static final String HAP = "hap";
+ /**HDR (Radiance RGBE format) image*/
+ public static final String HDR = "hdr";
+ /**H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid) (encoders: libx265 hevc_amf hevc_mf hevc_nvenc hevc_qsv)*/
+ public static final String HEVC = "hevc";
+ /**HNM 4 video*/
+ public static final String HNM4VIDEO = "hnm4video";
+ /**Canopus HQ/HQA*/
+ public static final String HQ_HQA = "hq_hqa";
+ /**Canopus HQX*/
+ public static final String HQX = "hqx";
+ /**HuffYUV*/
+ public static final String HUFFYUV = "huffyuv";
+ /**HuffYUV MT*/
+ public static final String HYMT = "hymt";
+ /**id Quake II CIN video (decoders: idcinvideo)*/
+ public static final String IDCIN = "idcin";
+ /**iCEDraw text*/
+ public static final String IDF = "idf";
+ /**IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN (decoders: iff)*/
+ public static final String IFF_ILBM = "iff_ilbm";
+ /**Infinity IMM4*/
+ public static final String IMM4 = "imm4";
+ /**Infinity IMM5*/
+ public static final String IMM5 = "imm5";
+ /**Intel Indeo 2*/
+ public static final String INDEO2 = "indeo2";
+ /**Intel Indeo 3*/
+ public static final String INDEO3 = "indeo3";
+ /**Intel Indeo Video Interactive 4*/
+ public static final String INDEO4 = "indeo4";
+ /**Intel Indeo Video Interactive 5*/
+ public static final String INDEO5 = "indeo5";
+ /**Interplay MVE video*/
+ public static final String INTERPLAYVIDEO = "interplayvideo";
+ /**IPU Video*/
+ public static final String IPU = "ipu";
+ /**JPEG 2000 (encoders: jpeg2000 libopenjpeg)*/
+ public static final String JPEG2000 = "jpeg2000";
+ /**JPEG-LS*/
+ public static final String JPEGLS = "jpegls";
+ /**JPEG XL*/
+ public static final String JPEGXL = "jpegxl";
+ /**Bitmap Brothers JV video*/
+ public static final String JV = "jv";
+ /**Kega Game Video*/
+ public static final String KGV1 = "kgv1";
+ /**Karl Morton's video codec*/
+ public static final String KMVC = "kmvc";
+ /**Lagarith lossless*/
+ public static final String LAGARITH = "lagarith";
+ /**Lossless JPEG*/
+ public static final String LJPEG = "ljpeg";
+ /**LOCO*/
+ public static final String LOCO = "loco";
+ /**LEAD Screen Capture*/
+ public static final String LSCR = "lscr";
+ /**Matrox Uncompressed SD*/
+ public static final String M101 = "m101";
+ /**Electronic Arts Madcow Video (decoders: eamad)*/
+ public static final String MAD = "mad";
+ /**MagicYUV video*/
+ public static final String MAGICYUV = "magicyuv";
+ /**Sony PlayStation MDEC (Motion DECoder)*/
+ public static final String MDEC = "mdec";
+ /**Media 100i*/
+ public static final String MEDIA100 = "media100";
+ /**Mimic*/
+ public static final String MIMIC = "mimic";
+ /**Motion JPEG (decoders: mjpeg mjpeg_cuvid mjpeg_qsv) (encoders: mjpeg mjpeg_qsv)*/
+ public static final String MJPEG = "mjpeg";
+ /**Apple MJPEG-B*/
+ public static final String MJPEGB = "mjpegb";
+ /**American Laser Games MM Video*/
+ public static final String MMVIDEO = "mmvideo";
+ /**MobiClip Video*/
+ public static final String MOBICLIP = "mobiclip";
+ /**Motion Pixels video*/
+ public static final String MOTIONPIXELS = "motionpixels";
+ /**MPEG-1 video (decoders: mpeg1video mpeg1_cuvid)*/
+ public static final String MPEG1VIDEO = "mpeg1video";
+ /**MPEG-2 video (decoders: mpeg2video mpegvideo mpeg2_qsv mpeg2_cuvid) (encoders: mpeg2video mpeg2_qsv)*/
+ public static final String MPEG2VIDEO = "mpeg2video";
+ /**MPEG-4 part 2 (decoders: mpeg4 mpeg4_cuvid) (encoders: mpeg4 libxvid)*/
+ public static final String MPEG4 = "mpeg4";
+ /**MS ATC Screen*/
+ public static final String MSA1 = "msa1";
+ /**Mandsoft Screen Capture Codec*/
+ public static final String MSCC = "mscc";
+ /**MPEG-4 part 2 Microsoft variant version 1*/
+ public static final String MSMPEG4V1 = "msmpeg4v1";
+ /**MPEG-4 part 2 Microsoft variant version 2*/
+ public static final String MSMPEG4V2 = "msmpeg4v2";
+ /**MPEG-4 part 2 Microsoft variant version 3 (decoders: msmpeg4) (encoders: msmpeg4)*/
+ public static final String MSMPEG4V3 = "msmpeg4v3";
+ /**Microsoft Paint (MSP) version 2*/
+ public static final String MSP2 = "msp2";
+ /**Microsoft RLE*/
+ public static final String MSRLE = "msrle";
+ /**MS Screen 1*/
+ public static final String MSS1 = "mss1";
+ /**MS Windows Media Video V9 Screen*/
+ public static final String MSS2 = "mss2";
+ /**Microsoft Video 1*/
+ public static final String MSVIDEO1 = "msvideo1";
+ /**LCL (LossLess Codec Library) MSZH*/
+ public static final String MSZH = "mszh";
+ /**MS Expression Encoder Screen*/
+ public static final String MTS2 = "mts2";
+ /**MidiVid 3.0*/
+ public static final String MV30 = "mv30";
+ /**Silicon Graphics Motion Video Compressor 1*/
+ public static final String MVC1 = "mvc1";
+ /**Silicon Graphics Motion Video Compressor 2*/
+ public static final String MVC2 = "mvc2";
+ /**MidiVid VQ*/
+ public static final String MVDV = "mvdv";
+ /**MidiVid Archive Codec*/
+ public static final String MVHA = "mvha";
+ /**MatchWare Screen Capture Codec*/
+ public static final String MWSC = "mwsc";
+ /**Mobotix MxPEG video*/
+ public static final String MXPEG = "mxpeg";
+ /**NotchLC*/
+ public static final String NOTCHLC = "notchlc";
+ /**NuppelVideo/RTJPEG*/
+ public static final String NUV = "nuv";
+ /**Amazing Studio Packed Animation File Video*/
+ public static final String PAF_VIDEO = "paf_video";
+ /**PAM (Portable AnyMap) image*/
+ public static final String PAM = "pam";
+ /**PBM (Portable BitMap) image*/
+ public static final String PBM = "pbm";
+ /**PC Paintbrush PCX image*/
+ public static final String PCX = "pcx";
+ /**PDV (PlayDate Video)*/
+ public static final String PDV = "pdv";
+ /**PFM (Portable FloatMap) image*/
+ public static final String PFM = "pfm";
+ /**PGM (Portable GrayMap) image*/
+ public static final String PGM = "pgm";
+ /**PGMYUV (Portable GrayMap YUV) image*/
+ public static final String PGMYUV = "pgmyuv";
+ /**PGX (JPEG2000 Test Format)*/
+ public static final String PGX = "pgx";
+ /**PHM (Portable HalfFloatMap) image*/
+ public static final String PHM = "phm";
+ /**Kodak Photo CD*/
+ public static final String PHOTOCD = "photocd";
+ /**Pictor/PC Paint*/
+ public static final String PICTOR = "pictor";
+ /**Apple Pixlet*/
+ public static final String PIXLET = "pixlet";
+ /**PNG (Portable Network Graphics) image*/
+ public static final String PNG = "png";
+ /**PPM (Portable PixelMap) image*/
+ public static final String PPM = "ppm";
+ /**Apple ProRes (iCodec Pro) (encoders: prores prores_aw prores_ks)*/
+ public static final String PRORES = "prores";
+ /**Brooktree ProSumer Video*/
+ public static final String PROSUMER = "prosumer";
+ /**Photoshop PSD file*/
+ public static final String PSD = "psd";
+ /**V.Flash PTX image*/
+ public static final String PTX = "ptx";
+ /**Apple QuickDraw*/
+ public static final String QDRAW = "qdraw";
+ /**QOI (Quite OK Image)*/
+ public static final String QOI = "qoi";
+ /**Q-team QPEG*/
+ public static final String QPEG = "qpeg";
+ /**QuickTime Animation (RLE) video*/
+ public static final String QTRLE = "qtrle";
+ /**AJA Kona 10-bit RGB Codec*/
+ public static final String R10K = "r10k";
+ /**Uncompressed RGB 10-bit*/
+ public static final String R210 = "r210";
+ /**RemotelyAnywhere Screen Capture*/
+ public static final String RASC = "rasc";
+ /**raw video*/
+ public static final String RAWVIDEO = "rawvideo";
+ /**RL2 video*/
+ public static final String RL2 = "rl2";
+ /**id RoQ video (decoders: roqvideo) (encoders: roqvideo)*/
+ public static final String ROQ = "roq";
+ /**QuickTime video (RPZA)*/
+ public static final String RPZA = "rpza";
+ /**innoHeim/Rsupport Screen Capture Codec*/
+ public static final String RSCC = "rscc";
+ /**RTV1 (RivaTuner Video)*/
+ public static final String RTV1 = "rtv1";
+ /**RealVideo 1.0*/
+ public static final String RV10 = "rv10";
+ /**RealVideo 2.0*/
+ public static final String RV20 = "rv20";
+ /**RealVideo 3.0*/
+ public static final String RV30 = "rv30";
+ /**RealVideo 4.0*/
+ public static final String RV40 = "rv40";
+ /**LucasArts SANM/SMUSH video*/
+ public static final String SANM = "sanm";
+ /**ScreenPressor*/
+ public static final String SCPR = "scpr";
+ /**Screenpresso*/
+ public static final String SCREENPRESSO = "screenpresso";
+ /**Digital Pictures SGA Video*/
+ public static final String SGA = "sga";
+ /**SGI image*/
+ public static final String SGI = "sgi";
+ /**SGI RLE 8-bit*/
+ public static final String SGIRLE = "sgirle";
+ /**BitJazz SheerVideo*/
+ public static final String SHEERVIDEO = "sheervideo";
+ /**Simbiosis Interactive IMX Video*/
+ public static final String SIMBIOSIS_IMX = "simbiosis_imx";
+ /**Smacker video (decoders: smackvid)*/
+ public static final String SMACKVIDEO = "smackvideo";
+ /**QuickTime Graphics (SMC)*/
+ public static final String SMC = "smc";
+ /**Sigmatel Motion Video*/
+ public static final String SMVJPEG = "smvjpeg";
+ /**Snow*/
+ public static final String SNOW = "snow";
+ /**Sunplus JPEG (SP5X)*/
+ public static final String SP5X = "sp5x";
+ /**NewTek SpeedHQ*/
+ public static final String SPEEDHQ = "speedhq";
+ /**Screen Recorder Gold Codec*/
+ public static final String SRGC = "srgc";
+ /**Sun Rasterfile image*/
+ public static final String SUNRAST = "sunrast";
+ /**Scalable Vector Graphics*/
+ public static final String SVG = "svg";
+ /**Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1*/
+ public static final String SVQ1 = "svq1";
+ /**Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3*/
+ public static final String SVQ3 = "svq3";
+ /**Truevision Targa image*/
+ public static final String TARGA = "targa";
+ /**Pinnacle TARGA CineWave YUV16*/
+ public static final String TARGA_Y216 = "targa_y216";
+ /**TDSC*/
+ public static final String TDSC = "tdsc";
+ /**Electronic Arts TGQ video (decoders: eatgq)*/
+ public static final String TGQ = "tgq";
+ /**Electronic Arts TGV video (decoders: eatgv)*/
+ public static final String TGV = "tgv";
+ /**Theora (encoders: libtheora)*/
+ public static final String THEORA = "theora";
+ /**Nintendo Gamecube THP video*/
+ public static final String THP = "thp";
+ /**Tiertex Limited SEQ video*/
+ public static final String TIERTEXSEQVIDEO = "tiertexseqvideo";
+ /**TIFF image*/
+ public static final String TIFF = "tiff";
+ /**8088flex TMV*/
+ public static final String TMV = "tmv";
+ /**Electronic Arts TQI video (decoders: eatqi)*/
+ public static final String TQI = "tqi";
+ /**Duck TrueMotion 1.0*/
+ public static final String TRUEMOTION1 = "truemotion1";
+ /**Duck TrueMotion 2.0*/
+ public static final String TRUEMOTION2 = "truemotion2";
+ /**Duck TrueMotion 2.0 Real Time*/
+ public static final String TRUEMOTION2RT = "truemotion2rt";
+ /**TechSmith Screen Capture Codec (decoders: camtasia)*/
+ public static final String TSCC = "tscc";
+ /**TechSmith Screen Codec 2*/
+ public static final String TSCC2 = "tscc2";
+ /**Renderware TXD (TeXture Dictionary) image*/
+ public static final String TXD = "txd";
+ /**IBM UltiMotion (decoders: ultimotion)*/
+ public static final String ULTI = "ulti";
+ /**Ut Video*/
+ public static final String UTVIDEO = "utvideo";
+ /**Uncompressed 4:2:2 10-bit*/
+ public static final String V210 = "v210";
+ /**Uncompressed 4:2:2 10-bit*/
+ public static final String V210X = "v210x";
+ /**Uncompressed packed 4:4:4*/
+ public static final String V308 = "v308";
+ /**Uncompressed packed QT 4:4:4:4*/
+ public static final String V408 = "v408";
+ /**Uncompressed 4:4:4 10-bit*/
+ public static final String V410 = "v410";
+ /**Beam Software VB*/
+ public static final String VB = "vb";
+ /**VBLE Lossless Codec*/
+ public static final String VBLE = "vble";
+ /**Vizrt Binary Image*/
+ public static final String VBN = "vbn";
+ /**SMPTE VC-1 (decoders: vc1 vc1_qsv vc1_cuvid)*/
+ public static final String VC1 = "vc1";
+ /**Windows Media Video 9 Image v2*/
+ public static final String VC1IMAGE = "vc1image";
+ /**ATI VCR1*/
+ public static final String VCR1 = "vcr1";
+ /**Miro VideoXL (decoders: xl)*/
+ public static final String VIXL = "vixl";
+ /**Sierra VMD video*/
+ public static final String VMDVIDEO = "vmdvideo";
+ /**vMix Video*/
+ public static final String VMIX = "vmix";
+ /**VMware Screen Codec / VMware Video*/
+ public static final String VMNC = "vmnc";
+ /**Null video codec*/
+ public static final String VNULL = "vnull";
+ /**On2 VP3*/
+ public static final String VP3 = "vp3";
+ /**On2 VP4*/
+ public static final String VP4 = "vp4";
+ /**On2 VP5*/
+ public static final String VP5 = "vp5";
+ /**On2 VP6*/
+ public static final String VP6 = "vp6";
+ /**On2 VP6 (Flash version, with alpha channel)*/
+ public static final String VP6A = "vp6a";
+ /**On2 VP6 (Flash version)*/
+ public static final String VP6F = "vp6f";
+ /**On2 VP7*/
+ public static final String VP7 = "vp7";
+ /**On2 VP8 (decoders: vp8 libvpx vp8_cuvid vp8_qsv) (encoders: libvpx)*/
+ public static final String VP8 = "vp8";
+ /**Google VP9 (decoders: vp9 libvpx-vp9 vp9_cuvid vp9_qsv) (encoders: libvpx-vp9 vp9_qsv)*/
+ public static final String VP9 = "vp9";
+ /**ViewQuest VQC*/
+ public static final String VQC = "vqc";
+ /**H.266 / VVC (Versatile Video Coding)*/
+ public static final String VVC = "vvc";
+ /**WBMP (Wireless Application Protocol Bitmap) image*/
+ public static final String WBMP = "wbmp";
+ /**WinCAM Motion Video*/
+ public static final String WCMV = "wcmv";
+ /**WebP (encoders: libwebp_anim libwebp)*/
+ public static final String WEBP = "webp";
+ /**Windows Media Video 7*/
+ public static final String WMV1 = "wmv1";
+ /**Windows Media Video 8*/
+ public static final String WMV2 = "wmv2";
+ /**Windows Media Video 9*/
+ public static final String WMV3 = "wmv3";
+ /**Windows Media Video 9 Image*/
+ public static final String WMV3IMAGE = "wmv3image";
+ /**Winnov WNV1*/
+ public static final String WNV1 = "wnv1";
+ /**AVFrame to AVPacket passthrough*/
+ public static final String WRAPPED_AVFRAME = "wrapped_avframe";
+ /**Westwood Studios VQA (Vector Quantized Animation) video (decoders: vqavideo)*/
+ public static final String WS_VQA = "ws_vqa";
+ /**Wing Commander III / Xan*/
+ public static final String XAN_WC3 = "xan_wc3";
+ /**Wing Commander IV / Xxan*/
+ public static final String XAN_WC4 = "xan_wc4";
+ /**eXtended BINary text*/
+ public static final String XBIN = "xbin";
+ /**XBM (X BitMap) image*/
+ public static final String XBM = "xbm";
+ /**X-face image*/
+ public static final String XFACE = "xface";
+ /**XPM (X PixMap) image*/
+ public static final String XPM = "xpm";
+ /**XWD (X Window Dump) image*/
+ public static final String XWD = "xwd";
+ /**Uncompressed YUV 4:1:1 12-bit*/
+ public static final String Y41P = "y41p";
+ /**YUY2 Lossless Codec*/
+ public static final String YLC = "ylc";
+ /**Psygnosis YOP Video*/
+ public static final String YOP = "yop";
+ /**Uncompressed packed 4:2:0*/
+ public static final String YUV4 = "yuv4";
+ /**ZeroCodec Lossless Video*/
+ public static final String ZEROCODEC = "zerocodec";
+ /**LCL (LossLess Codec Library) ZLIB*/
+ public static final String ZLIB = "zlib";
+ /**Zip Motion Blocks Video*/
+ public static final String ZMBV = "zmbv";
+}
\ No newline at end of file
diff --git a/src/test/java/net/bramp/ffmpeg/builder/FFmpegBuilderTest.java b/src/test/java/net/bramp/ffmpeg/builder/FFmpegBuilderTest.java
index 43f49e31..483ca688 100644
--- a/src/test/java/net/bramp/ffmpeg/builder/FFmpegBuilderTest.java
+++ b/src/test/java/net/bramp/ffmpeg/builder/FFmpegBuilderTest.java
@@ -191,6 +191,29 @@ public void testSetOptions() {
assertThat(video, reflectEquals(options.getVideo()));
}
+ /** Tests if all the various encoding options actually get stored and used correctly */
+ @Test
+ public void testVideoCodecWithEnum() {
+ MainEncodingOptions main = new MainEncodingOptions("mp4", 1500L, 2L);
+ AudioEncodingOptions audio =
+ new AudioEncodingOptions(true, AudioCodec.AAC, 1, AUDIO_SAMPLE_48000, AUDIO_FORMAT_S16, 1, 2.0);
+ VideoEncodingOptions video =
+ new VideoEncodingOptions(true, VideoCodec.H264, FPS_30, 320, 240, 1, null, null, null);
+
+ EncodingOptions options =
+ new FFmpegBuilder()
+ .setInput("input")
+ .addOutput("output")
+ .useOptions(main)
+ .useOptions(audio)
+ .useOptions(video)
+ .buildOptions();
+
+ assertThat(main, reflectEquals(options.getMain()));
+ assertThat(audio, reflectEquals(options.getAudio()));
+ assertThat(video, reflectEquals(options.getVideo()));
+ }
+
@Test
public void testMultipleOutputs() {
diff --git a/tools/codec_enum_generator.py b/tools/codec_enum_generator.py
new file mode 100644
index 00000000..49498f24
--- /dev/null
+++ b/tools/codec_enum_generator.py
@@ -0,0 +1,74 @@
+"""
+First of all, FFmpeg should be installed on your local PC.
+Running "python codec_enum_generator.py" in the shell creates Audioodec and VideooCodec.
+You can update the codec file by putting these two files within the net.bramp.ffmpeg.builder package.
+"""
+import subprocess
+import re
+
+CODECS_REGEX = re.compile("^ ([.D][.E][VASD][.I][.L][.S]) (\S{2,})\s+(.*)$")
+
+def removeLeadingNumbers(text):
+ index = 0
+ while index < len(text) and text[index].isdigit():
+ index += 1
+ return text[index:]
+
+def writeCodec(m,codec):
+ document = "\t"+"/**"+ m.group(3).replace("&","&").rstrip() +"*/\n"
+ enumCode = "\t" +"public static final String " +removeLeadingNumbers(m.group(2).replace(".","_")).upper() +' = "'+ m.group(2) +'";' +'\n'
+ codec.write(document)
+ codec.write(enumCode)
+
+
+output = subprocess.check_output("ffmpeg -codecs", shell=True).decode('utf-8')
+
+print(output)
+
+output = output.split("\n")
+
+videoCodec = open("VideoCodec.java", 'w')
+audioCodec = open("AudioCodec.java", 'w')
+
+# write header
+videoCodec.write(
+"""package net.bramp.ffmpeg.builder;
+/**The available codecs may vary depending on the version of FFmpeg.
+ *
+ * you can get a list of available codecs through use {@link net.bramp.ffmpeg.FFmpeg#codecs()}.
+ *
+ * @see net.bramp.ffmpeg.FFmpeg#codecs()
+ * @author van1164
+ * */
+public class VideoCodec {
+
+""")
+audioCodec.write(
+"""package net.bramp.ffmpeg.builder;
+/**The available codecs may vary depending on the version of FFmpeg.
+ *
+ * you can get a list of available codecs through use {@link net.bramp.ffmpeg.FFmpeg#codecs()}.
+ *
+ * @see net.bramp.ffmpeg.FFmpeg#codecs()
+ * @author van1164
+ * */
+public class AudioCodec {
+
+""")
+for item in output:
+ m = CODECS_REGEX.match(item)
+ if not m : continue
+
+ lst = item.split()
+ if 'A' in m.group(1):
+ writeCodec(m,audioCodec)
+
+ if 'V' in m.group(1):
+ writeCodec(m,videoCodec)
+
+
+videoCodec.write("}")
+audioCodec.write("}")
+
+videoCodec.close()
+audioCodec.close()