diff --git a/src/main/java/net/bramp/ffmpeg/FFmpeg.java b/src/main/java/net/bramp/ffmpeg/FFmpeg.java index d6981843..68997efa 100644 --- a/src/main/java/net/bramp/ffmpeg/FFmpeg.java +++ b/src/main/java/net/bramp/ffmpeg/FFmpeg.java @@ -64,6 +64,8 @@ public class FFmpeg extends FFcommon { public static final int AUDIO_SAMPLE_96000 = 96000; static final Pattern CODECS_REGEX = + Pattern.compile("^ ([\\.D][\\.E][VAS][\\.I][\\.L][\\.S]) (?![\\=])(\\S+)\\s+(.*)$"); + static final Pattern LEGACY_CODECS_REGEX = Pattern.compile("^ ([ D][ E][VAS][ S][ D][ T]) (\\S+)\\s+(.*)$"); static final Pattern FORMATS_REGEX = Pattern.compile("^ ([ D][ E]) (\\S+)\\s+(.*)$"); @@ -123,15 +125,17 @@ private void checkIfFFmpeg() throws IllegalArgumentException, IOException { Process p = runFunc.run(ImmutableList.of(path, "-codecs")); try { BufferedReader r = wrapInReader(p); + Pattern codecRegex = this.isLegacyVersion() ? LEGACY_CODECS_REGEX : CODECS_REGEX; String line; while ((line = r.readLine()) != null) { - Matcher m = CODECS_REGEX.matcher(line); + Matcher m = codecRegex.matcher(line); if (!m.matches()) continue; codecs.add(new Codec(m.group(2), m.group(3), m.group(1))); } throwOnError(p); + this.codecs = ImmutableList.copyOf(codecs); } finally { p.destroy(); @@ -141,6 +145,11 @@ private void checkIfFFmpeg() throws IllegalArgumentException, IOException { return codecs; } + private boolean isLegacyVersion() throws IOException { + String version = this.version(); + return version.startsWith("ffmpeg version 0."); + } + public synchronized @Nonnull List formats() throws IOException { checkIfFFmpeg(); diff --git a/src/main/java/net/bramp/ffmpeg/info/Codec.java b/src/main/java/net/bramp/ffmpeg/info/Codec.java index a58aaacf..5a300fb8 100644 --- a/src/main/java/net/bramp/ffmpeg/info/Codec.java +++ b/src/main/java/net/bramp/ffmpeg/info/Codec.java @@ -13,9 +13,10 @@ @Immutable public class Codec { - enum Type { + public enum Type { VIDEO, AUDIO, + INVALID, SUBTITLE } @@ -66,7 +67,7 @@ public Codec(String name, String longName, String flags) { this.type = Type.SUBTITLE; break; default: - throw new IllegalArgumentException("Invalid codec type '" + flags.charAt(3) + "'"); + throw new IllegalArgumentException("Invalid codec type '" + flags.charAt(2) + "'"); } // TODO There are more flags to parse diff --git a/src/test/java/net/bramp/ffmpeg/ExamplesTest.java b/src/test/java/net/bramp/ffmpeg/ExamplesTest.java index 64ac4634..1062e758 100644 --- a/src/test/java/net/bramp/ffmpeg/ExamplesTest.java +++ b/src/test/java/net/bramp/ffmpeg/ExamplesTest.java @@ -32,7 +32,7 @@ public class ExamplesTest { @Before public void before() throws IOException { when(runFunc.run(argThatHasItem("-version"))) - .thenAnswer(new NewProcessAnswer("ffmpeg-version")); + .thenAnswer(new NewProcessAnswer("ffmpeg-version_0.10.9")); ffmpeg = new FFmpeg("ffmpeg", runFunc); } @@ -264,16 +264,17 @@ public void testExample9() throws IOException { // A test with videos added in a loop. @Test public void testExample10() throws IOException { - String expected = "ffmpeg -y -v error" - + " -f webm_dash_manifest" - + " -i audio.webm" - + " -i video_1.webm" - + " -i video_2.webm" - + " -i video_3.webm" - + " -vcodec copy -acodec copy" - + " -map 0 -map 1 -map 2 -map 3" - + " -adaptation_sets \"id=0,streams=0 id=1,streams=1,2,3\"" - + " output.mpd"; + String expected = + "ffmpeg -y -v error" + + " -f webm_dash_manifest" + + " -i audio.webm" + + " -i video_1.webm" + + " -i video_2.webm" + + " -i video_3.webm" + + " -vcodec copy -acodec copy" + + " -map 0 -map 1 -map 2 -map 3" + + " -adaptation_sets \"id=0,streams=0 id=1,streams=1,2,3\"" + + " output.mpd"; ArrayList streams = new ArrayList<>(); FFmpegBuilder builder = new FFmpegBuilder(); @@ -285,16 +286,20 @@ public void testExample10() throws IOException { streams.add(String.format("%d", i)); } - FFmpegOutputBuilder out = builder.addOutput("output.mpd") - .setVideoCodec("copy").setAudioCodec("copy") // TODO Add a new setCodec(..) method. - .addExtraArgs("-map", "0"); + FFmpegOutputBuilder out = + builder + .addOutput("output.mpd") + .setVideoCodec("copy") + .setAudioCodec("copy") // TODO Add a new setCodec(..) method. + .addExtraArgs("-map", "0"); for (String stream : streams) { out.addExtraArgs("-map", stream); } - out.addExtraArgs("-adaptation_sets", - String.format("\"id=0,streams=0 id=1,streams=%s\"", Joiner.on(",").join(streams))) + out.addExtraArgs( + "-adaptation_sets", + String.format("\"id=0,streams=0 id=1,streams=%s\"", Joiner.on(",").join(streams))) .done(); String actual = Joiner.on(" ").join(ffmpeg.path(builder.build())); diff --git a/src/test/java/net/bramp/ffmpeg/FFmpegTest.java b/src/test/java/net/bramp/ffmpeg/FFmpegTest.java index e5f68936..ab901a5f 100644 --- a/src/test/java/net/bramp/ffmpeg/FFmpegTest.java +++ b/src/test/java/net/bramp/ffmpeg/FFmpegTest.java @@ -26,12 +26,23 @@ public class FFmpegTest { @Before public void before() throws IOException { - when(runFunc.run(argThatHasItem("-version"))) - .thenAnswer(new NewProcessAnswer("ffmpeg-version")); when(runFunc.run(argThatHasItem("-formats"))) .thenAnswer(new NewProcessAnswer("ffmpeg-formats")); - when(runFunc.run(argThatHasItem("-codecs"))).thenAnswer(new NewProcessAnswer("ffmpeg-codecs")); + } + private void mockVersion0_10_9() throws IOException { + when(runFunc.run(argThatHasItem("-version"))) + .thenAnswer(new NewProcessAnswer("ffmpeg-version_0.10.9")); + when(runFunc.run(argThatHasItem("-codecs"))) + .thenAnswer(new NewProcessAnswer("ffmpeg-codecs_0.10.9")); + ffmpeg = new FFmpeg(runFunc); + } + + private void mockVersion4_1_1() throws IOException { + when(runFunc.run(argThatHasItem("-version"))) + .thenAnswer(new NewProcessAnswer("ffmpeg-version_4.1.1")); + when(runFunc.run(argThatHasItem("-codecs"))) + .thenAnswer(new NewProcessAnswer("ffmpeg-codecs_4.1.1")); ffmpeg = new FFmpeg(runFunc); } @@ -42,6 +53,8 @@ public static List argThatHasItem(T s) { @Test public void testVersion() throws Exception { + mockVersion0_10_9(); + assertEquals("ffmpeg version 0.10.9-7:0.10.9-1~raring1", ffmpeg.version()); assertEquals("ffmpeg version 0.10.9-7:0.10.9-1~raring1", ffmpeg.version()); @@ -49,7 +62,20 @@ public void testVersion() throws Exception { } @Test - public void testCodecs() throws IOException { + public void testCodecsInLegacyVersions() throws IOException { + mockVersion0_10_9(); + + // Run twice, the second should be cached + assertEquals(Codecs.LEGACY_CODECS, ffmpeg.codecs()); + assertEquals(Codecs.LEGACY_CODECS, ffmpeg.codecs()); + + verify(runFunc, times(1)).run(argThatHasItem("-codecs")); + } + + @Test + public void testCodecsInModernVersions() throws IOException { + mockVersion4_1_1(); + // Run twice, the second should be cached assertEquals(Codecs.CODECS, ffmpeg.codecs()); assertEquals(Codecs.CODECS, ffmpeg.codecs()); @@ -59,6 +85,8 @@ public void testCodecs() throws IOException { @Test public void testFormats() throws IOException { + mockVersion0_10_9(); + // Run twice, the second should be cached assertEquals(Formats.FORMATS, ffmpeg.formats()); assertEquals(Formats.FORMATS, ffmpeg.formats()); diff --git a/src/test/java/net/bramp/ffmpeg/fixtures/Codecs.java b/src/test/java/net/bramp/ffmpeg/fixtures/Codecs.java index d663bf7b..7f60accd 100644 --- a/src/test/java/net/bramp/ffmpeg/fixtures/Codecs.java +++ b/src/test/java/net/bramp/ffmpeg/fixtures/Codecs.java @@ -19,6 +19,573 @@ private Codecs() { } public static final ImmutableList CODECS = + new ImmutableList.Builder() + .add( + new Codec("012v", "Uncompressed 4:2:2 10-bit", "D.VI.S"), + new Codec("4xm", "4X Movie", "D.V.L."), + new Codec("8bps", "QuickTime 8BPS video", "D.VI.S"), + new Codec( + "a64_multi", + "Multicolor charset for Commodore 64 (encoders: a64multi )", + ".EVIL."), + new Codec( + "a64_multi5", + "Multicolor charset for Commodore 64, extended with 5th color (colram) (encoders: a64multi5 )", + ".EVIL."), + new Codec("aasc", "Autodesk RLE", "D.V..S"), + new Codec("aic", "Apple Intermediate Codec", "D.VIL."), + new Codec("alias_pix", "Alias/Wavefront PIX image", "DEVI.S"), + new Codec("amv", "AMV Video", "DEVIL."), + new Codec("anm", "Deluxe Paint Animation", "D.V.L."), + new Codec("ansi", "ASCII/ANSI art", "D.V.L."), + new Codec("apng", "APNG (Animated Portable Network Graphics) image", "DEV..S"), + new Codec("asv1", "ASUS V1", "DEVIL."), + new Codec("asv2", "ASUS V2", "DEVIL."), + new Codec("aura", "Auravision AURA", "D.VIL."), + new Codec("aura2", "Auravision Aura 2", "D.VIL."), + new Codec( + "av1", + "Alliance for Open Media AV1 (decoders: libaom-av1 ) (encoders: libaom-av1 )", + "DEV.L."), + new Codec("avrn", "Avid AVI Codec", "D.V..."), + new Codec("avrp", "Avid 1:1 10-bit RGB Packer", "DEVI.S"), + new Codec("avs", "AVS (Audio Video Standard) video", "D.V.L."), + new Codec("avs2", "AVS2-P2/IEEE1857.4", "..V.L."), + new Codec("avui", "Avid Meridien Uncompressed", "DEVI.S"), + new Codec("ayuv", "Uncompressed packed MS 4:4:4:4", "DEVI.S"), + new Codec("bethsoftvid", "Bethesda VID video", "D.V.L."), + new Codec("bfi", "Brute Force & Ignorance", "D.V.L."), + new Codec("binkvideo", "Bink video", "D.V.L."), + new Codec("bintext", "Binary text", "D.VI.."), + new Codec("bitpacked", "Bitpacked", "D.VI.S"), + new Codec("bmp", "BMP (Windows and OS/2 bitmap)", "DEVI.S"), + new Codec("bmv_video", "Discworld II BMV video", "D.V..S"), + new Codec("brender_pix", "BRender PIX image", "D.VI.S"), + new Codec("c93", "Interplay C93", "D.V.L."), + new Codec( + "cavs", "Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile)", "D.V.L."), + new Codec("cdgraphics", "CD Graphics video", "D.V.L."), + new Codec("cdxl", "Commodore CDXL video", "D.VIL."), + new Codec("cfhd", "Cineform HD", "D.V.L."), + new Codec("cinepak", "Cinepak", "DEV.L."), + new Codec("clearvideo", "Iterated Systems ClearVideo", "D.V.L."), + new Codec("cljr", "Cirrus Logic AccuPak", "DEVIL."), + new Codec("cllc", "Canopus Lossless Codec", "D.VI.S"), + new Codec("cmv", "Electronic Arts CMV video (decoders: eacmv )", "D.V.L."), + new Codec("cpia", "CPiA video format", "D.V..."), + new Codec("cscd", "CamStudio (decoders: camstudio )", "D.V..S"), + new Codec("cyuv", "Creative YUV (CYUV)", "D.VIL."), + new Codec("daala", "Daala", "..V.LS"), + new Codec("dds", "DirectDraw Surface image decoder", "D.VILS"), + new Codec("dfa", "Chronomaster DFA", "D.V.L."), + new Codec("dirac", "Dirac (encoders: vc2 )", "DEV.LS"), + new Codec("dnxhd", "VC3/DNxHD", "DEVIL."), + new Codec("dpx", "DPX (Digital Picture Exchange) image", "DEVI.S"), + new Codec("dsicinvideo", "Delphine Software International CIN video", "D.V.L."), + new Codec("dvvideo", "DV (Digital Video)", "DEVIL."), + new Codec("dxa", "Feeble Files/ScummVM DXA", "D.V..S"), + new Codec("dxtory", "Dxtory", "D.VI.S"), + new Codec("dxv", "Resolume DXV", "D.VIL."), + new Codec("escape124", "Escape 124", "D.V.L."), + new Codec("escape130", "Escape 130", "D.V.L."), + new Codec("exr", "OpenEXR image", "D.VILS"), + new Codec("ffv1", "FFmpeg video codec #1", "DEV..S"), + new Codec("ffvhuff", "Huffyuv FFmpeg variant", "DEVI.S"), + new Codec("fic", "Mirillis FIC", "D.V.L."), + new Codec("fits", "FITS (Flexible Image Transport System)", "DEVI.S"), + new Codec("flashsv", "Flash Screen Video v1", "DEV..S"), + new Codec("flashsv2", "Flash Screen Video v2", "DEV.L."), + new Codec("flic", "Autodesk Animator Flic video", "D.V..S"), + new Codec( + "flv1", + "FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (decoders: flv ) (encoders: flv )", + "DEV.L."), + new Codec("fmvc", "FM Screen Capture Codec", "D.V..S"), + new Codec("fraps", "Fraps", "D.VI.S"), + new Codec("frwu", "Forward Uncompressed", "D.VI.S"), + new Codec("g2m", "Go2Meeting", "D.V.L."), + new Codec("gdv", "Gremlin Digital Video", "D.V.L."), + new Codec("gif", "GIF (Graphics Interchange Format)", "DEV..S"), + new Codec("h261", "H.261", "DEV.L."), + new Codec( + "h263", + "H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 (decoders: h263 h263_v4l2m2m ) (encoders: h263 h263_v4l2m2m )", + "DEV.L."), + new Codec("h263i", "Intel H.263", "D.V.L."), + new Codec("h263p", "H.263+ / H.263-1998 / H.263 version 2", "DEV.L."), + new Codec( + "h264", + "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_cuvid ) (encoders: libx264 libx264rgb h264_nvenc h264_omx h264_v4l2m2m h264_vaapi nvenc nvenc_h264 )", + "DEV.LS"), + new Codec("hap", "Vidvox Hap", "D.VIL."), + new Codec( + "hevc", + "H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_v4l2m2m hevc_cuvid ) (encoders: libx265 nvenc_hevc hevc_nvenc hevc_v4l2m2m hevc_vaapi )", + "DEV.L."), + new Codec("hnm4video", "HNM 4 video", "D.V.L."), + new Codec("hq_hqa", "Canopus HQ/HQA", "D.VIL."), + new Codec("hqx", "Canopus HQX", "D.VIL."), + new Codec("huffyuv", "HuffYUV", "DEVI.S"), + new Codec("idcin", "id Quake II CIN video (decoders: idcinvideo )", "D.V.L."), + new Codec("idf", "iCEDraw text", "D.VI.."), + new Codec( + "iff_ilbm", "IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN (decoders: iff )", "D.V.L."), + new Codec("imm4", "Infinity IMM4", "D.V.L."), + new Codec("indeo2", "Intel Indeo 2", "D.V.L."), + new Codec("indeo3", "Intel Indeo 3", "D.V.L."), + new Codec("indeo4", "Intel Indeo Video Interactive 4", "D.V.L."), + new Codec("indeo5", "Intel Indeo Video Interactive 5", "D.V.L."), + new Codec("interplayvideo", "Interplay MVE video", "D.V.L."), + new Codec( + "jpeg2000", + "JPEG 2000 (decoders: jpeg2000 libopenjpeg ) (encoders: jpeg2000 libopenjpeg )", + "DEVILS"), + new Codec("jpegls", "JPEG-LS", "DEVILS"), + new Codec("jv", " Bitmap Brothers JV video", "D.VIL."), + new Codec("kgv1", "Kega Game Video", "D.V.L."), + new Codec("kmvc", "Karl Morton's video codec", "D.V.L."), + new Codec("lagarith", "Lagarith lossless", "D.VI.S"), + new Codec("ljpeg", "Lossless JPEG", ".EVI.S"), + new Codec("loco", "LOCO", "D.VI.S"), + new Codec("m101", "Matrox Uncompressed SD", "D.VI.S"), + new Codec("mad", "Electronic Arts Madcow Video (decoders: eamad )", "D.V.L."), + new Codec("magicyuv", "MagicYUV video", "DEVI.S"), + new Codec("mdec", "Sony PlayStation MDEC (Motion DECoder)", "D.VIL."), + new Codec("mimic", "Mimic", "D.V.L."), + new Codec( + "mjpeg", + "Motion JPEG (decoders: mjpeg mjpeg_cuvid ) (encoders: mjpeg mjpeg_vaapi )", + "DEVIL."), + new Codec("mjpegb", "Apple MJPEG-B", "D.VIL."), + new Codec("mmvideo", "American Laser Games MM Video", "D.V.L."), + new Codec("motionpixels", "Motion Pixels video", "D.V.L."), + new Codec( + "mpeg1video", + "MPEG-1 video (decoders: mpeg1video mpeg1_v4l2m2m mpeg1_cuvid )", + "DEV.L."), + new Codec( + "mpeg2video", + "MPEG-2 video (decoders: mpeg2video mpegvideo mpeg2_v4l2m2m mpeg2_cuvid ) (encoders: mpeg2video mpeg2_vaapi )", + "DEV.L."), + new Codec( + "mpeg4", + "MPEG-4 part 2 (decoders: mpeg4 mpeg4_v4l2m2m mpeg4_cuvid ) (encoders: mpeg4 libxvid mpeg4_v4l2m2m )", + "DEV.L."), + new Codec("msa1", "MS ATC Screen", "D.V.L."), + new Codec("mscc", "Mandsoft Screen Capture Codec", "D.VI.S"), + new Codec("msmpeg4v1", "MPEG-4 part 2 Microsoft variant version 1", "D.V.L."), + new Codec("msmpeg4v2", "MPEG-4 part 2 Microsoft variant version 2", "DEV.L."), + new Codec( + "msmpeg4v3", + "MPEG-4 part 2 Microsoft variant version 3 (decoders: msmpeg4 ) (encoders: msmpeg4 )", + "DEV.L."), + new Codec("msrle", "Microsoft RLE", "D.V..S"), + new Codec("mss1", "MS Screen 1", "D.V.L."), + new Codec("mss2", "MS Windows Media Video V9 Screen", "D.VIL."), + new Codec("msvideo1", "Microsoft Video 1", "DEV.L."), + new Codec("mszh", "LCL (LossLess Codec Library) MSZH", "D.VI.S"), + new Codec("mts2", "MS Expression Encoder Screen", "D.V.L."), + new Codec("mvc1", "Silicon Graphics Motion Video Compressor 1", "D.VIL."), + new Codec("mvc2", "Silicon Graphics Motion Video Compressor 2", "D.VIL."), + new Codec("mwsc", "MatchWare Screen Capture Codec", "D.V..S"), + new Codec("mxpeg", "Mobotix MxPEG video", "D.V.L."), + new Codec("nuv", "NuppelVideo/RTJPEG", "D.V.L."), + new Codec("paf_video", "Amazing Studio Packed Animation File Video", "D.V.L."), + new Codec("pam", "PAM (Portable AnyMap) image", "DEVI.S"), + new Codec("pbm", "PBM (Portable BitMap) image", "DEVI.S"), + new Codec("pcx", "PC Paintbrush PCX image", "DEVI.S"), + new Codec("pgm", "PGM (Portable GrayMap) image", "DEVI.S"), + new Codec("pgmyuv", "PGMYUV (Portable GrayMap YUV) image", "DEVI.S"), + new Codec("pictor", "Pictor/PC Paint", "D.VIL."), + new Codec("pixlet", "Apple Pixlet", "D.VIL."), + new Codec("png", "PNG (Portable Network Graphics) image", "DEV..S"), + new Codec("ppm", "PPM (Portable PixelMap) image", "DEVI.S"), + new Codec( + "prores", + "Apple ProRes (iCodec Pro) (encoders: prores prores_aw prores_ks )", + "DEVIL."), + new Codec("prosumer", "Brooktree ProSumer Video", "D.VIL."), + new Codec("psd", "Photoshop PSD file", "D.VI.S"), + new Codec("ptx", "V.Flash PTX image", "D.VIL."), + new Codec("qdraw", "Apple QuickDraw", "D.VI.S"), + new Codec("qpeg", "Q-team QPEG", "D.V.L."), + new Codec("qtrle", "QuickTime Animation (RLE) video", "DEV..S"), + new Codec("r10k", "AJA Kona 10-bit RGB Codec", "DEVI.S"), + new Codec("r210", "Uncompressed RGB 10-bit", "DEVI.S"), + new Codec("rasc", "RemotelyAnywhere Screen Capture", "D.V.L."), + new Codec("rawvideo", "raw video", "DEVI.S"), + new Codec("rl2", "RL2 video", "D.VIL."), + new Codec( + "roq", "id RoQ video (decoders: roqvideo ) (encoders: roqvideo )", "DEV.L."), + new Codec("rpza", "QuickTime video (RPZA)", "D.V.L."), + new Codec("rscc", "innoHeim/Rsupport Screen Capture Codec", "D.V..S"), + new Codec("rv10", "RealVideo 1.0", "DEV.L."), + new Codec("rv20", "RealVideo 2.0", "DEV.L."), + new Codec("rv30", "RealVideo 3.0", "D.V.L."), + new Codec("rv40", "RealVideo 4.0", "D.V.L."), + new Codec("sanm", "LucasArts SANM/SMUSH video", "D.V.L."), + new Codec("scpr", "ScreenPressor", "D.V.LS"), + new Codec("screenpresso", "Screenpresso", "D.V..S"), + new Codec("sgi", "SGI image", "DEVI.S"), + new Codec("sgirle", "SGI RLE 8-bit", "D.VI.S"), + new Codec("sheervideo", "BitJazz SheerVideo", "D.VI.S"), + new Codec("smackvideo", "Smacker video (decoders: smackvid )", "D.V.L."), + new Codec("smc", "QuickTime Graphics (SMC)", "D.V.L."), + new Codec("smvjpeg", "Sigmatel Motion Video", "D.V..."), + new Codec("snow", "Snow", "DEV.LS"), + new Codec("sp5x", "Sunplus JPEG (SP5X)", "D.VIL."), + new Codec("speedhq", "NewTek SpeedHQ", "D.VIL."), + new Codec("srgc", "Screen Recorder Gold Codec", "D.VI.S"), + new Codec("sunrast", "Sun Rasterfile image", "DEVI.S"), + new Codec("svg", "Scalable Vector Graphics", "..V..S"), + new Codec("svq1", "Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1", "DEV.L."), + new Codec("svq3", "Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3", "D.V.L."), + new Codec("targa", "Truevision Targa image", "DEVI.S"), + new Codec("targa_y216", "Pinnacle TARGA CineWave YUV16", "D.VI.S"), + new Codec("tdsc", "TDSC", "D.V.L."), + new Codec("tgq", "Electronic Arts TGQ video (decoders: eatgq )", "D.V.L."), + new Codec("tgv", "Electronic Arts TGV video (decoders: eatgv )", "D.V.L."), + new Codec("theora", "Theora (encoders: libtheora )", "DEV.L."), + new Codec("thp", "Nintendo Gamecube THP video", "D.VIL."), + new Codec("tiertexseqvideo", "Tiertex Limited SEQ video", "D.V.L."), + new Codec("tiff", "TIFF image", "DEVI.S"), + new Codec("tmv", "8088flex TMV", "D.VIL."), + new Codec("tqi", "Electronic Arts TQI video (decoders: eatqi )", "D.V.L."), + new Codec("truemotion1", "Duck TrueMotion 1.0", "D.V.L."), + new Codec("truemotion2", "Duck TrueMotion 2.0", "D.V.L."), + new Codec("truemotion2rt", "Duck TrueMotion 2.0 Real Time", "D.VIL."), + new Codec("tscc", "TechSmith Screen Capture Codec (decoders: camtasia )", "D.V..S"), + new Codec("tscc2", "TechSmith Screen Codec 2", "D.V.L."), + new Codec("txd", "Renderware TXD (TeXture Dictionary) image", "D.VIL."), + new Codec("ulti", "IBM UltiMotion (decoders: ultimotion )", "D.V.L."), + new Codec("utvideo", "Ut Video", "DEVI.S"), + new Codec("v210", "Uncompressed 4:2:2 10-bit", "DEVI.S"), + new Codec("v210x", "Uncompressed 4:2:2 10-bit", "D.VI.S"), + new Codec("v308", "Uncompressed packed 4:4:4", "DEVI.S"), + new Codec("v408", "Uncompressed packed QT 4:4:4:4", "DEVI.S"), + new Codec("v410", "Uncompressed 4:4:4 10-bit", "DEVI.S"), + new Codec("vb", " Beam Software VB", "D.V.L."), + new Codec("vble", "VBLE Lossless Codec", "D.VI.S"), + new Codec("vc1", "SMPTE VC-1 (decoders: vc1 vc1_v4l2m2m vc1_cuvid )", "D.V.L."), + new Codec("vc1image", "Windows Media Video 9 Image v2", "D.V.L."), + new Codec("vcr1", "ATI VCR1", "D.VIL."), + new Codec("vixl", "Miro VideoXL (decoders: xl )", "D.VIL."), + new Codec("vmdvideo", "Sierra VMD video", "D.V.L."), + new Codec("vmnc", "VMware Screen Codec / VMware Video", "D.V..S"), + new Codec("vp3", "On2 VP3", "D.V.L."), + new Codec("vp5", "On2 VP5", "D.V.L."), + new Codec("vp6", "On2 VP6", "D.V.L."), + new Codec("vp6a", "On2 VP6 (Flash version, with alpha channel)", "D.V.L."), + new Codec("vp6f", "On2 VP6 (Flash version)", "D.V.L."), + new Codec("vp7", "On2 VP7", "D.V.L."), + new Codec( + "vp8", + "On2 VP8 (decoders: vp8 vp8_v4l2m2m libvpx vp8_cuvid ) (encoders: libvpx vp8_v4l2m2m vp8_vaapi )", + "DEV.L."), + new Codec( + "vp9", + "Google VP9 (decoders: vp9 vp9_v4l2m2m libvpx-vp9 vp9_cuvid ) (encoders: libvpx-vp9 vp9_vaapi )", + "DEV.L."), + new Codec("wcmv", "WinCAM Motion Video", "D.V..S"), + new Codec("webp", "WebP (encoders: libwebp_anim libwebp )", "DEVILS"), + new Codec("wmv1", "Windows Media Video 7", "DEV.L."), + new Codec("wmv2", "Windows Media Video 8", "DEV.L."), + new Codec("wmv3", "Windows Media Video 9", "D.V.L."), + new Codec("wmv3image", "Windows Media Video 9 Image", "D.V.L."), + new Codec("wnv1", "Winnov WNV1", "D.VIL."), + new Codec("wrapped_avframe", "AVFrame to AVPacket passthrough", "DEV..S"), + new Codec( + "ws_vqa", + "Westwood Studios VQA (Vector Quantized Animation) video (decoders: vqavideo )", + "D.V.L."), + new Codec("xan_wc3", "Wing Commander III / Xan", "D.V.L."), + new Codec("xan_wc4", "Wing Commander IV / Xxan", "D.V.L."), + new Codec("xbin", "eXtended BINary text", "D.VI.."), + new Codec("xbm", "XBM (X BitMap) image", "DEVI.S"), + new Codec("xface", "X-face image", "DEVIL."), + new Codec("xpm", "XPM (X PixMap) image", "D.VI.S"), + new Codec("xwd", "XWD (X Window Dump) image", "DEVI.S"), + new Codec("y41p", "Uncompressed YUV 4:1:1 12-bit", "DEVI.S"), + new Codec("ylc", "YUY2 Lossless Codec", "D.VI.S"), + new Codec("yop", "Psygnosis YOP Video", "D.V.L."), + new Codec("yuv4", "Uncompressed packed 4:2:0", "DEVI.S"), + new Codec("zerocodec", "ZeroCodec Lossless Video", "D.V..S"), + new Codec("zlib", "LCL (LossLess Codec Library) ZLIB", "DEVI.S"), + new Codec("zmbv", "Zip Motion Blocks Video", "DEV..S"), + new Codec("4gv", "4GV (Fourth Generation Vocoder)", "..A.L."), + new Codec("8svx_exp", "8SVX exponential", "D.A.L."), + new Codec("8svx_fib", "8SVX fibonacci", "D.A.L."), + new Codec("aac", "AAC (Advanced Audio Coding) (decoders: aac aac_fixed )", "DEA.L."), + new Codec("aac_latm", "AAC LATM (Advanced Audio Coding LATM syntax)", "D.A.L."), + new Codec( + "ac3", + "ATSC A/52A (AC-3) (decoders: ac3 ac3_fixed ) (encoders: ac3 ac3_fixed )", + "DEA.L."), + new Codec("adpcm_4xm", "ADPCM 4X Movie", "D.A.L."), + new Codec("adpcm_adx", "SEGA CRI ADX ADPCM", "DEA.L."), + new Codec("adpcm_afc", "ADPCM Nintendo Gamecube AFC", "D.A.L."), + new Codec("adpcm_aica", "ADPCM Yamaha AICA", "D.A.L."), + new Codec("adpcm_ct", "ADPCM Creative Technology", "D.A.L."), + new Codec("adpcm_dtk", "ADPCM Nintendo Gamecube DTK", "D.A.L."), + new Codec("adpcm_ea", "ADPCM Electronic Arts", "D.A.L."), + new Codec("adpcm_ea_maxis_xa", "ADPCM Electronic Arts Maxis CDROM XA", "D.A.L."), + new Codec("adpcm_ea_r1", "ADPCM Electronic Arts R1", "D.A.L."), + new Codec("adpcm_ea_r2", "ADPCM Electronic Arts R2", "D.A.L."), + new Codec("adpcm_ea_r3", "ADPCM Electronic Arts R3", "D.A.L."), + new Codec("adpcm_ea_xas", "ADPCM Electronic Arts XAS", "D.A.L."), + new Codec("adpcm_g722", "G.722 ADPCM (decoders: g722 ) (encoders: g722 )", "DEA.L."), + new Codec("adpcm_g726", "G.726 ADPCM (decoders: g726 ) (encoders: g726 )", "DEA.L."), + new Codec( + "adpcm_g726le", + "G.726 ADPCM little-endian (decoders: g726le ) (encoders: g726le )", + "DEA.L."), + new Codec("adpcm_ima_amv", "ADPCM IMA AMV", "D.A.L."), + new Codec("adpcm_ima_apc", "ADPCM IMA CRYO APC", "D.A.L."), + new Codec("adpcm_ima_dat4", "ADPCM IMA Eurocom DAT4", "D.A.L."), + new Codec("adpcm_ima_dk3", "ADPCM IMA Duck DK3", "D.A.L."), + new Codec("adpcm_ima_dk4", "ADPCM IMA Duck DK4", "D.A.L."), + new Codec("adpcm_ima_ea_eacs", "ADPCM IMA Electronic Arts EACS", "D.A.L."), + new Codec("adpcm_ima_ea_sead", "ADPCM IMA Electronic Arts SEAD", "D.A.L."), + new Codec("adpcm_ima_iss", "ADPCM IMA Funcom ISS", "D.A.L."), + new Codec("adpcm_ima_oki", "ADPCM IMA Dialogic OKI", "D.A.L."), + new Codec("adpcm_ima_qt", "ADPCM IMA QuickTime", "DEA.L."), + new Codec("adpcm_ima_rad", "ADPCM IMA Radical", "D.A.L."), + new Codec("adpcm_ima_smjpeg", "ADPCM IMA Loki SDL MJPEG", "D.A.L."), + new Codec("adpcm_ima_wav", "ADPCM IMA WAV", "DEA.L."), + new Codec("adpcm_ima_ws", "ADPCM IMA Westwood", "D.A.L."), + new Codec("adpcm_ms", "ADPCM Microsoft", "DEA.L."), + new Codec("adpcm_mtaf", "ADPCM MTAF", "D.A.L."), + new Codec("adpcm_psx", "ADPCM Playstation", "D.A.L."), + new Codec("adpcm_sbpro_2", "ADPCM Sound Blaster Pro 2-bit", "D.A.L."), + new Codec("adpcm_sbpro_3", "ADPCM Sound Blaster Pro 2.6-bit", "D.A.L."), + new Codec("adpcm_sbpro_4", "ADPCM Sound Blaster Pro 4-bit", "D.A.L."), + new Codec("adpcm_swf", "ADPCM Shockwave Flash", "DEA.L."), + new Codec("adpcm_thp", "ADPCM Nintendo THP", "D.A.L."), + new Codec("adpcm_thp_le", "ADPCM Nintendo THP (Little-Endian)", "D.A.L."), + new Codec("adpcm_vima", "LucasArts VIMA audio", "D.A.L."), + new Codec("adpcm_xa", "ADPCM CDROM XA", "D.A.L."), + new Codec("adpcm_yamaha", "ADPCM Yamaha", "DEA.L."), + new Codec("alac", "ALAC (Apple Lossless Audio Codec)", "DEAI.S"), + new Codec( + "amr_nb", + "AMR-NB (Adaptive Multi-Rate NarrowBand) (decoders: amrnb libopencore_amrnb ) (encoders: libopencore_amrnb )", + "DEA.L."), + new Codec( + "amr_wb", + "AMR-WB (Adaptive Multi-Rate WideBand) (decoders: amrwb libopencore_amrwb )", + "D.A.L."), + new Codec("ape", "Monkey's Audio", "D.A..S"), + new Codec("aptx", "aptX (Audio Processing Technology for Bluetooth)", "DEA.L."), + new Codec("aptx_hd", "aptX HD (Audio Processing Technology for Bluetooth)", "DEA.L."), + new Codec("atrac1", "ATRAC1 (Adaptive TRansform Acoustic Coding)", "D.A.L."), + new Codec("atrac3", "ATRAC3 (Adaptive TRansform Acoustic Coding 3)", "D.A.L."), + new Codec( + "atrac3al", + "ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless)", + "D.A..S"), + new Codec( + "atrac3p", + "ATRAC3+ (Adaptive TRansform Acoustic Coding 3+) (decoders: atrac3plus )", + "D.A.L."), + new Codec( + "atrac3pal", + "ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless) (decoders: atrac3plusal )", + "D.A..S"), + new Codec("atrac9", "ATRAC9 (Adaptive TRansform Acoustic Coding 9)", "D.A.L."), + new Codec("avc", "On2 Audio for Video Codec (decoders: on2avc )", "D.A.L."), + new Codec("binkaudio_dct", "Bink Audio (DCT)", "D.A.L."), + new Codec("binkaudio_rdft", "Bink Audio (RDFT)", "D.A.L."), + new Codec("bmv_audio", "Discworld II BMV audio", "D.A.L."), + new Codec("celt", "Constrained Energy Lapped Transform (CELT)", "..A.L."), + new Codec("codec2", "codec2 (very low bitrate speech codec)", "..A.L."), + new Codec("comfortnoise", "RFC 3389 Comfort Noise", "DEA.L."), + new Codec("cook", "Cook / Cooker / Gecko (RealAudio G2)", "D.A.L."), + new Codec("dolby_e", "Dolby E", "D.A.L."), + new Codec( + "dsd_lsbf", "DSD (Direct Stream Digital), least significant bit first", "D.A.L."), + new Codec( + "dsd_lsbf_planar", + "DSD (Direct Stream Digital), least significant bit first, planar", + "D.A.L."), + new Codec( + "dsd_msbf", "DSD (Direct Stream Digital), most significant bit first", "D.A.L."), + new Codec( + "dsd_msbf_planar", + "DSD (Direct Stream Digital), most significant bit first, planar", + "D.A.L."), + new Codec("dsicinaudio", "Delphine Software International CIN audio", "D.A.L."), + new Codec( + "dss_sp", "Digital Speech Standard - Standard Play mode (DSS SP)", "D.A.L."), + new Codec("dst", "DST (Direct Stream Transfer)", "D.A..S"), + new Codec( + "dts", + "DCA (DTS Coherent Acoustics) (decoders: dca ) (encoders: dca )", + "DEA.LS"), + new Codec("dvaudio", "DV audio", "D.A.L."), + new Codec("eac3", "ATSC A/52B (AC-3, E-AC-3)", "DEA.L."), + new Codec("evrc", "EVRC (Enhanced Variable Rate Codec)", "D.A.L."), + new Codec("flac", "FLAC (Free Lossless Audio Codec)", "DEAI.S"), + new Codec("g723_1", "G.723.1", "DEA.L."), + new Codec("g729", "G.729", "D.A.L."), + new Codec("gremlin_dpcm", "DPCM Gremlin", "D.A.L."), + new Codec("gsm", "GSM (decoders: gsm libgsm ) (encoders: libgsm )", "DEA.L."), + new Codec( + "gsm_ms", + "GSM Microsoft variant (decoders: gsm_ms libgsm_ms ) (encoders: libgsm_ms )", + "DEA.L."), + new Codec("iac", "IAC (Indeo Audio Coder)", "D.A.L."), + new Codec("ilbc", "iLBC (Internet Low Bitrate Codec)", "D.A.L."), + new Codec("imc", "IMC (Intel Music Coder)", "D.A.L."), + new Codec("interplay_dpcm", "DPCM Interplay", "D.A.L."), + new Codec("interplayacm", "Interplay ACM", "D.A.L."), + new Codec("mace3", "MACE (Macintosh Audio Compression/Expansion) 3:1", "D.A.L."), + new Codec("mace6", "MACE (Macintosh Audio Compression/Expansion) 6:1", "D.A.L."), + new Codec("metasound", "Voxware MetaSound", "D.A.L."), + new Codec("mlp", "MLP (Meridian Lossless Packing)", "DEA..S"), + new Codec("mp1", "MP1 (MPEG audio layer 1) (decoders: mp1 mp1float )", "D.A.L."), + new Codec( + "mp2", + "MP2 (MPEG audio layer 2) (decoders: mp2 mp2float ) (encoders: mp2 mp2fixed )", + "DEA.L."), + new Codec( + "mp3", + "MP3 (MPEG audio layer 3) (decoders: mp3float mp3 ) (encoders: libmp3lame )", + "DEA.L."), + new Codec( + "mp3adu", + "ADU (Application Data Unit) MP3 (MPEG audio layer 3) (decoders: mp3adufloat mp3adu )", + "D.A.L."), + new Codec("mp3on4", "MP3onMP4 (decoders: mp3on4float mp3on4 )", "D.A.L."), + new Codec("mp4als", "MPEG-4 Audio Lossless Coding (ALS) (decoders: als )", "D.A..S"), + new Codec("musepack7", "Musepack SV7 (decoders: mpc7 )", "D.A.L."), + new Codec("musepack8", "Musepack SV8 (decoders: mpc8 )", "D.A.L."), + new Codec("nellymoser", "Nellymoser Asao", "DEA.L."), + new Codec( + "opus", + "Opus (Opus Interactive Audio Codec) (decoders: opus libopus ) (encoders: opus libopus )", + "DEA.L."), + new Codec("paf_audio", "Amazing Studio Packed Animation File Audio", "D.A.L."), + new Codec("pcm_alaw", "PCM A-law / G.711 A-law", "DEA.L."), + new Codec( + "pcm_bluray", "PCM signed 16|20|24-bit big-endian for Blu-ray media", "D.A..S"), + new Codec("pcm_dvd", "PCM signed 20|24-bit big-endian", "D.A..S"), + new Codec("pcm_f16le", "PCM 16.8 floating point little-endian", "D.A..S"), + new Codec("pcm_f24le", "PCM 24.0 floating point little-endian", "D.A..S"), + new Codec("pcm_f32be", "PCM 32-bit floating point big-endian", "DEA..S"), + new Codec("pcm_f32le", "PCM 32-bit floating point little-endian", "DEA..S"), + new Codec("pcm_f64be", "PCM 64-bit floating point big-endian", "DEA..S"), + new Codec("pcm_f64le", "PCM 64-bit floating point little-endian", "DEA..S"), + new Codec("pcm_lxf", "PCM signed 20-bit little-endian planar", "D.A..S"), + new Codec("pcm_mulaw", "PCM mu-law / G.711 mu-law", "DEA.L."), + new Codec("pcm_s16be", "PCM signed 16-bit big-endian", "DEA..S"), + new Codec("pcm_s16be_planar", "PCM signed 16-bit big-endian planar", "DEA..S"), + new Codec("pcm_s16le", "PCM signed 16-bit little-endian", "DEA..S"), + new Codec("pcm_s16le_planar", "PCM signed 16-bit little-endian planar", "DEA..S"), + new Codec("pcm_s24be", "PCM signed 24-bit big-endian", "DEA..S"), + new Codec("pcm_s24daud", "PCM D-Cinema audio signed 24-bit", "DEA..S"), + new Codec("pcm_s24le", "PCM signed 24-bit little-endian", "DEA..S"), + new Codec("pcm_s24le_planar", "PCM signed 24-bit little-endian planar", "DEA..S"), + new Codec("pcm_s32be", "PCM signed 32-bit big-endian", "DEA..S"), + new Codec("pcm_s32le", "PCM signed 32-bit little-endian", "DEA..S"), + new Codec("pcm_s32le_planar", "PCM signed 32-bit little-endian planar", "DEA..S"), + new Codec("pcm_s64be", "PCM signed 64-bit big-endian", "DEA..S"), + new Codec("pcm_s64le", "PCM signed 64-bit little-endian", "DEA..S"), + new Codec("pcm_s8", "PCM signed 8-bit", "DEA..S"), + new Codec("pcm_s8_planar", "PCM signed 8-bit planar", "DEA..S"), + new Codec("pcm_u16be", "PCM unsigned 16-bit big-endian", "DEA..S"), + new Codec("pcm_u16le", "PCM unsigned 16-bit little-endian", "DEA..S"), + new Codec("pcm_u24be", "PCM unsigned 24-bit big-endian", "DEA..S"), + new Codec("pcm_u24le", "PCM unsigned 24-bit little-endian", "DEA..S"), + new Codec("pcm_u32be", "PCM unsigned 32-bit big-endian", "DEA..S"), + new Codec("pcm_u32le", "PCM unsigned 32-bit little-endian", "DEA..S"), + new Codec("pcm_u8", "PCM unsigned 8-bit", "DEA..S"), + new Codec("pcm_vidc", "PCM Archimedes VIDC", "DEA.L."), + new Codec("pcm_zork", "PCM Zork", "D.A.L."), + new Codec("qcelp", "QCELP / PureVoice", "D.A.L."), + new Codec("qdm2", "QDesign Music Codec 2", "D.A.L."), + new Codec("qdmc", "QDesign Music", "D.A.L."), + new Codec( + "ra_144", + "RealAudio 1.0 (14.4K) (decoders: real_144 ) (encoders: real_144 )", + "DEA.L."), + new Codec("ra_288", "RealAudio 2.0 (28.8K) (decoders: real_288 )", "D.A.L."), + new Codec("ralf", "RealAudio Lossless", "D.A..S"), + new Codec("roq_dpcm", "DPCM id RoQ", "DEA.L."), + new Codec("s302m", "SMPTE 302M", "DEA..S"), + new Codec("sbc", "SBC (low-complexity subband codec)", "DEA.L."), + new Codec("sdx2_dpcm", "DPCM Squareroot-Delta-Exact", "D.A.L."), + new Codec("shorten", "Shorten", "D.A..S"), + new Codec("sipr", "RealAudio SIPR / ACELP.NET", "D.A.L."), + new Codec("smackaudio", "Smacker audio (decoders: smackaud )", "D.A.L."), + new Codec("smv", "SMV (Selectable Mode Vocoder)", "..A.L."), + new Codec("sol_dpcm", "DPCM Sol", "D.A.L."), + new Codec("sonic", "Sonic", "DEA..."), + new Codec("sonicls", "Sonic lossless", ".EA..."), + new Codec("speex", "Speex (decoders: libspeex ) (encoders: libspeex )", "DEA.L."), + new Codec("tak", "TAK (Tom's lossless Audio Kompressor)", "D.AI.S"), + new Codec("truehd", "TrueHD", "DEA..S"), + new Codec("truespeech", "DSP Group TrueSpeech", "D.A.L."), + new Codec("tta", "TTA (True Audio)", "DEAI.S"), + new Codec("twinvq", "VQF TwinVQ", "D.A.L."), + new Codec("vmdaudio", "Sierra VMD audio", "D.A.L."), + new Codec( + "vorbis", + "Vorbis (decoders: vorbis libvorbis ) (encoders: vorbis libvorbis )", + "DEA.L."), + new Codec("wavesynth", "Wave synthesis pseudo-codec", "D.A..."), + new Codec("wavpack", "WavPack", "DEAILS"), + new Codec("westwood_snd1", "Westwood Audio (SND1) (decoders: ws_snd1 )", "D.A.L."), + new Codec("wmalossless", "Windows Media Audio Lossless", "D.A..S"), + new Codec("wmapro", "Windows Media Audio 9 Professional", "D.A.L."), + new Codec("wmav1", "Windows Media Audio 1", "DEA.L."), + new Codec("wmav2", "Windows Media Audio 2", "DEA.L."), + new Codec("wmavoice", "Windows Media Audio Voice", "D.A.L."), + new Codec("xan_dpcm", "DPCM Xan", "D.A.L."), + new Codec("xma1", "Xbox Media Audio 1", "D.A.L."), + new Codec("xma2", "Xbox Media Audio 2", "D.A.L."), + new Codec( + "ass", + "ASS (Advanced SSA) subtitle (decoders: ssa ass ) (encoders: ssa ass )", + "DES..."), + new Codec( + "dvb_subtitle", + "DVB subtitles (decoders: dvbsub ) (encoders: dvbsub )", + "DES..."), + new Codec("dvb_teletext", "DVB teletext", "..S..."), + new Codec( + "dvd_subtitle", + "DVD subtitles (decoders: dvdsub ) (encoders: dvdsub )", + "DES..."), + new Codec("eia_608", "EIA-608 closed captions (decoders: cc_dec )", "D.S..."), + new Codec( + "hdmv_pgs_subtitle", + "HDMV Presentation Graphic Stream subtitles (decoders: pgssub )", + "D.S..."), + new Codec("hdmv_text_subtitle", "HDMV Text subtitle", "..S..."), + new Codec("jacosub", "JACOsub subtitle", "D.S..."), + new Codec("microdvd", "MicroDVD subtitle", "D.S..."), + new Codec("mov_text", "MOV text", "DES..."), + new Codec("mpl2", "MPL2 subtitle", "D.S..."), + new Codec("pjs", "PJS (Phoenix Japanimation Society) subtitle", "D.S..."), + new Codec("realtext", "RealText subtitle", "D.S..."), + new Codec("sami", "SAMI subtitle", "D.S..."), + new Codec("srt", "SubRip subtitle with embedded timing", "..S..."), + new Codec("ssa", "SSA (SubStation Alpha) subtitle", "..S..."), + new Codec("stl", "Spruce subtitle format", "D.S..."), + new Codec( + "subrip", + "SubRip subtitle (decoders: srt subrip ) (encoders: srt subrip )", + "DES..."), + new Codec("subviewer", "SubViewer subtitle", "D.S..."), + new Codec("subviewer1", "SubViewer v1 subtitle", "D.S..."), + new Codec("text", "raw UTF-8 text", "DES..."), + new Codec("ttml", "Timed Text Markup Language", "..S..."), + new Codec("vplayer", "VPlayer subtitle", "D.S..."), + new Codec("webvtt", "WebVTT subtitle", "DES..."), + new Codec("xsub", "XSUB", "DES...")) + .build(); + + public static final ImmutableList LEGACY_CODECS = new ImmutableList.Builder() .add( new Codec("4xm", "4X Movie", "D V D "), diff --git a/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-codecs b/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-codecs_0.10.9 similarity index 100% rename from src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-codecs rename to src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-codecs_0.10.9 diff --git a/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-codecs_4.1.1 b/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-codecs_4.1.1 new file mode 100644 index 00000000..44220455 --- /dev/null +++ b/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-codecs_4.1.1 @@ -0,0 +1,455 @@ +Codecs: + D..... = Decoding supported + .E.... = Encoding supported + ..V... = Video codec + ..A... = Audio codec + ..S... = Subtitle codec + ...I.. = Intra frame-only codec + ....L. = Lossy compression + .....S = Lossless compression + ------- + D.VI.S 012v Uncompressed 4:2:2 10-bit + D.V.L. 4xm 4X Movie + D.VI.S 8bps QuickTime 8BPS video + .EVIL. a64_multi Multicolor charset for Commodore 64 (encoders: a64multi ) + .EVIL. a64_multi5 Multicolor charset for Commodore 64, extended with 5th color (colram) (encoders: a64multi5 ) + D.V..S aasc Autodesk RLE + D.VIL. aic Apple Intermediate Codec + DEVI.S alias_pix Alias/Wavefront PIX image + DEVIL. amv AMV Video + D.V.L. anm Deluxe Paint Animation + D.V.L. ansi ASCII/ANSI art + DEV..S apng APNG (Animated Portable Network Graphics) image + DEVIL. asv1 ASUS V1 + DEVIL. asv2 ASUS V2 + D.VIL. aura Auravision AURA + D.VIL. aura2 Auravision Aura 2 + DEV.L. av1 Alliance for Open Media AV1 (decoders: libaom-av1 ) (encoders: libaom-av1 ) + D.V... avrn Avid AVI Codec + DEVI.S avrp Avid 1:1 10-bit RGB Packer + D.V.L. avs AVS (Audio Video Standard) video + ..V.L. avs2 AVS2-P2/IEEE1857.4 + DEVI.S avui Avid Meridien Uncompressed + DEVI.S ayuv Uncompressed packed MS 4:4:4:4 + D.V.L. bethsoftvid Bethesda VID video + D.V.L. bfi Brute Force & Ignorance + D.V.L. binkvideo Bink video + D.VI.. bintext Binary text + D.VI.S bitpacked Bitpacked + DEVI.S bmp BMP (Windows and OS/2 bitmap) + D.V..S bmv_video Discworld II BMV video + D.VI.S brender_pix BRender PIX image + D.V.L. c93 Interplay C93 + D.V.L. cavs Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile) + D.V.L. cdgraphics CD Graphics video + D.VIL. cdxl Commodore CDXL video + D.V.L. cfhd Cineform HD + DEV.L. cinepak Cinepak + D.V.L. clearvideo Iterated Systems ClearVideo + DEVIL. cljr Cirrus Logic AccuPak + D.VI.S cllc Canopus Lossless Codec + D.V.L. cmv Electronic Arts CMV video (decoders: eacmv ) + D.V... cpia CPiA video format + D.V..S cscd CamStudio (decoders: camstudio ) + D.VIL. cyuv Creative YUV (CYUV) + ..V.LS daala Daala + D.VILS dds DirectDraw Surface image decoder + D.V.L. dfa Chronomaster DFA + DEV.LS dirac Dirac (encoders: vc2 ) + DEVIL. dnxhd VC3/DNxHD + DEVI.S dpx DPX (Digital Picture Exchange) image + D.V.L. dsicinvideo Delphine Software International CIN video + DEVIL. dvvideo DV (Digital Video) + D.V..S dxa Feeble Files/ScummVM DXA + D.VI.S dxtory Dxtory + D.VIL. dxv Resolume DXV + D.V.L. escape124 Escape 124 + D.V.L. escape130 Escape 130 + D.VILS exr OpenEXR image + DEV..S ffv1 FFmpeg video codec #1 + DEVI.S ffvhuff Huffyuv FFmpeg variant + D.V.L. fic Mirillis FIC + DEVI.S fits FITS (Flexible Image Transport System) + DEV..S flashsv Flash Screen Video v1 + DEV.L. flashsv2 Flash Screen Video v2 + D.V..S flic Autodesk Animator Flic video + DEV.L. flv1 FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (decoders: flv ) (encoders: flv ) + D.V..S fmvc FM Screen Capture Codec + D.VI.S fraps Fraps + D.VI.S frwu Forward Uncompressed + D.V.L. g2m Go2Meeting + D.V.L. gdv Gremlin Digital Video + DEV..S gif GIF (Graphics Interchange Format) + DEV.L. h261 H.261 + DEV.L. h263 H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 (decoders: h263 h263_v4l2m2m ) (encoders: h263 h263_v4l2m2m ) + D.V.L. h263i Intel H.263 + DEV.L. h263p H.263+ / H.263-1998 / H.263 version 2 + DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_cuvid ) (encoders: libx264 libx264rgb h264_nvenc h264_omx h264_v4l2m2m h264_vaapi nvenc nvenc_h264 ) + D.VIL. hap Vidvox Hap + DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_v4l2m2m hevc_cuvid ) (encoders: libx265 nvenc_hevc hevc_nvenc hevc_v4l2m2m hevc_vaapi ) + D.V.L. hnm4video HNM 4 video + D.VIL. hq_hqa Canopus HQ/HQA + D.VIL. hqx Canopus HQX + DEVI.S huffyuv HuffYUV + D.V.L. idcin id Quake II CIN video (decoders: idcinvideo ) + D.VI.. idf iCEDraw text + D.V.L. iff_ilbm IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN (decoders: iff ) + D.V.L. imm4 Infinity IMM4 + D.V.L. indeo2 Intel Indeo 2 + D.V.L. indeo3 Intel Indeo 3 + D.V.L. indeo4 Intel Indeo Video Interactive 4 + D.V.L. indeo5 Intel Indeo Video Interactive 5 + D.V.L. interplayvideo Interplay MVE video + DEVILS jpeg2000 JPEG 2000 (decoders: jpeg2000 libopenjpeg ) (encoders: jpeg2000 libopenjpeg ) + DEVILS jpegls JPEG-LS + D.VIL. jv Bitmap Brothers JV video + D.V.L. kgv1 Kega Game Video + D.V.L. kmvc Karl Morton's video codec + D.VI.S lagarith Lagarith lossless + .EVI.S ljpeg Lossless JPEG + D.VI.S loco LOCO + D.VI.S m101 Matrox Uncompressed SD + D.V.L. mad Electronic Arts Madcow Video (decoders: eamad ) + DEVI.S magicyuv MagicYUV video + D.VIL. mdec Sony PlayStation MDEC (Motion DECoder) + D.V.L. mimic Mimic + DEVIL. mjpeg Motion JPEG (decoders: mjpeg mjpeg_cuvid ) (encoders: mjpeg mjpeg_vaapi ) + D.VIL. mjpegb Apple MJPEG-B + D.V.L. mmvideo American Laser Games MM Video + D.V.L. motionpixels Motion Pixels video + DEV.L. mpeg1video MPEG-1 video (decoders: mpeg1video mpeg1_v4l2m2m mpeg1_cuvid ) + DEV.L. mpeg2video MPEG-2 video (decoders: mpeg2video mpegvideo mpeg2_v4l2m2m mpeg2_cuvid ) (encoders: mpeg2video mpeg2_vaapi ) + DEV.L. mpeg4 MPEG-4 part 2 (decoders: mpeg4 mpeg4_v4l2m2m mpeg4_cuvid ) (encoders: mpeg4 libxvid mpeg4_v4l2m2m ) + D.V.L. msa1 MS ATC Screen + D.VI.S mscc Mandsoft Screen Capture Codec + D.V.L. msmpeg4v1 MPEG-4 part 2 Microsoft variant version 1 + DEV.L. msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2 + DEV.L. msmpeg4v3 MPEG-4 part 2 Microsoft variant version 3 (decoders: msmpeg4 ) (encoders: msmpeg4 ) + D.V..S msrle Microsoft RLE + D.V.L. mss1 MS Screen 1 + D.VIL. mss2 MS Windows Media Video V9 Screen + DEV.L. msvideo1 Microsoft Video 1 + D.VI.S mszh LCL (LossLess Codec Library) MSZH + D.V.L. mts2 MS Expression Encoder Screen + D.VIL. mvc1 Silicon Graphics Motion Video Compressor 1 + D.VIL. mvc2 Silicon Graphics Motion Video Compressor 2 + D.V..S mwsc MatchWare Screen Capture Codec + D.V.L. mxpeg Mobotix MxPEG video + D.V.L. nuv NuppelVideo/RTJPEG + D.V.L. paf_video Amazing Studio Packed Animation File Video + DEVI.S pam PAM (Portable AnyMap) image + DEVI.S pbm PBM (Portable BitMap) image + DEVI.S pcx PC Paintbrush PCX image + DEVI.S pgm PGM (Portable GrayMap) image + DEVI.S pgmyuv PGMYUV (Portable GrayMap YUV) image + D.VIL. pictor Pictor/PC Paint + D.VIL. pixlet Apple Pixlet + DEV..S png PNG (Portable Network Graphics) image + DEVI.S ppm PPM (Portable PixelMap) image + DEVIL. prores Apple ProRes (iCodec Pro) (encoders: prores prores_aw prores_ks ) + D.VIL. prosumer Brooktree ProSumer Video + D.VI.S psd Photoshop PSD file + D.VIL. ptx V.Flash PTX image + D.VI.S qdraw Apple QuickDraw + D.V.L. qpeg Q-team QPEG + DEV..S qtrle QuickTime Animation (RLE) video + DEVI.S r10k AJA Kona 10-bit RGB Codec + DEVI.S r210 Uncompressed RGB 10-bit + D.V.L. rasc RemotelyAnywhere Screen Capture + DEVI.S rawvideo raw video + D.VIL. rl2 RL2 video + DEV.L. roq id RoQ video (decoders: roqvideo ) (encoders: roqvideo ) + D.V.L. rpza QuickTime video (RPZA) + D.V..S rscc innoHeim/Rsupport Screen Capture Codec + DEV.L. rv10 RealVideo 1.0 + DEV.L. rv20 RealVideo 2.0 + D.V.L. rv30 RealVideo 3.0 + D.V.L. rv40 RealVideo 4.0 + D.V.L. sanm LucasArts SANM/SMUSH video + D.V.LS scpr ScreenPressor + D.V..S screenpresso Screenpresso + DEVI.S sgi SGI image + D.VI.S sgirle SGI RLE 8-bit + D.VI.S sheervideo BitJazz SheerVideo + D.V.L. smackvideo Smacker video (decoders: smackvid ) + D.V.L. smc QuickTime Graphics (SMC) + D.V... smvjpeg Sigmatel Motion Video + DEV.LS snow Snow + D.VIL. sp5x Sunplus JPEG (SP5X) + D.VIL. speedhq NewTek SpeedHQ + D.VI.S srgc Screen Recorder Gold Codec + DEVI.S sunrast Sun Rasterfile image + ..V..S svg Scalable Vector Graphics + DEV.L. svq1 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1 + D.V.L. svq3 Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3 + DEVI.S targa Truevision Targa image + D.VI.S targa_y216 Pinnacle TARGA CineWave YUV16 + D.V.L. tdsc TDSC + D.V.L. tgq Electronic Arts TGQ video (decoders: eatgq ) + D.V.L. tgv Electronic Arts TGV video (decoders: eatgv ) + DEV.L. theora Theora (encoders: libtheora ) + D.VIL. thp Nintendo Gamecube THP video + D.V.L. tiertexseqvideo Tiertex Limited SEQ video + DEVI.S tiff TIFF image + D.VIL. tmv 8088flex TMV + D.V.L. tqi Electronic Arts TQI video (decoders: eatqi ) + D.V.L. truemotion1 Duck TrueMotion 1.0 + D.V.L. truemotion2 Duck TrueMotion 2.0 + D.VIL. truemotion2rt Duck TrueMotion 2.0 Real Time + D.V..S tscc TechSmith Screen Capture Codec (decoders: camtasia ) + D.V.L. tscc2 TechSmith Screen Codec 2 + D.VIL. txd Renderware TXD (TeXture Dictionary) image + D.V.L. ulti IBM UltiMotion (decoders: ultimotion ) + DEVI.S utvideo Ut Video + DEVI.S v210 Uncompressed 4:2:2 10-bit + D.VI.S v210x Uncompressed 4:2:2 10-bit + DEVI.S v308 Uncompressed packed 4:4:4 + DEVI.S v408 Uncompressed packed QT 4:4:4:4 + DEVI.S v410 Uncompressed 4:4:4 10-bit + D.V.L. vb Beam Software VB + D.VI.S vble VBLE Lossless Codec + D.V.L. vc1 SMPTE VC-1 (decoders: vc1 vc1_v4l2m2m vc1_cuvid ) + D.V.L. vc1image Windows Media Video 9 Image v2 + D.VIL. vcr1 ATI VCR1 + D.VIL. vixl Miro VideoXL (decoders: xl ) + D.V.L. vmdvideo Sierra VMD video + D.V..S vmnc VMware Screen Codec / VMware Video + D.V.L. vp3 On2 VP3 + D.V.L. vp5 On2 VP5 + D.V.L. vp6 On2 VP6 + D.V.L. vp6a On2 VP6 (Flash version, with alpha channel) + D.V.L. vp6f On2 VP6 (Flash version) + D.V.L. vp7 On2 VP7 + DEV.L. vp8 On2 VP8 (decoders: vp8 vp8_v4l2m2m libvpx vp8_cuvid ) (encoders: libvpx vp8_v4l2m2m vp8_vaapi ) + DEV.L. vp9 Google VP9 (decoders: vp9 vp9_v4l2m2m libvpx-vp9 vp9_cuvid ) (encoders: libvpx-vp9 vp9_vaapi ) + D.V..S wcmv WinCAM Motion Video + DEVILS webp WebP (encoders: libwebp_anim libwebp ) + DEV.L. wmv1 Windows Media Video 7 + DEV.L. wmv2 Windows Media Video 8 + D.V.L. wmv3 Windows Media Video 9 + D.V.L. wmv3image Windows Media Video 9 Image + D.VIL. wnv1 Winnov WNV1 + DEV..S wrapped_avframe AVFrame to AVPacket passthrough + D.V.L. ws_vqa Westwood Studios VQA (Vector Quantized Animation) video (decoders: vqavideo ) + D.V.L. xan_wc3 Wing Commander III / Xan + D.V.L. xan_wc4 Wing Commander IV / Xxan + D.VI.. xbin eXtended BINary text + DEVI.S xbm XBM (X BitMap) image + DEVIL. xface X-face image + D.VI.S xpm XPM (X PixMap) image + DEVI.S xwd XWD (X Window Dump) image + DEVI.S y41p Uncompressed YUV 4:1:1 12-bit + D.VI.S ylc YUY2 Lossless Codec + D.V.L. yop Psygnosis YOP Video + DEVI.S yuv4 Uncompressed packed 4:2:0 + D.V..S zerocodec ZeroCodec Lossless Video + DEVI.S zlib LCL (LossLess Codec Library) ZLIB + DEV..S zmbv Zip Motion Blocks Video + ..A.L. 4gv 4GV (Fourth Generation Vocoder) + D.A.L. 8svx_exp 8SVX exponential + D.A.L. 8svx_fib 8SVX fibonacci + DEA.L. aac AAC (Advanced Audio Coding) (decoders: aac aac_fixed ) + D.A.L. aac_latm AAC LATM (Advanced Audio Coding LATM syntax) + DEA.L. ac3 ATSC A/52A (AC-3) (decoders: ac3 ac3_fixed ) (encoders: ac3 ac3_fixed ) + D.A.L. adpcm_4xm ADPCM 4X Movie + DEA.L. adpcm_adx SEGA CRI ADX ADPCM + D.A.L. adpcm_afc ADPCM Nintendo Gamecube AFC + D.A.L. adpcm_aica ADPCM Yamaha AICA + D.A.L. adpcm_ct ADPCM Creative Technology + D.A.L. adpcm_dtk ADPCM Nintendo Gamecube DTK + D.A.L. adpcm_ea ADPCM Electronic Arts + D.A.L. adpcm_ea_maxis_xa ADPCM Electronic Arts Maxis CDROM XA + D.A.L. adpcm_ea_r1 ADPCM Electronic Arts R1 + D.A.L. adpcm_ea_r2 ADPCM Electronic Arts R2 + D.A.L. adpcm_ea_r3 ADPCM Electronic Arts R3 + D.A.L. adpcm_ea_xas ADPCM Electronic Arts XAS + DEA.L. adpcm_g722 G.722 ADPCM (decoders: g722 ) (encoders: g722 ) + DEA.L. adpcm_g726 G.726 ADPCM (decoders: g726 ) (encoders: g726 ) + DEA.L. adpcm_g726le G.726 ADPCM little-endian (decoders: g726le ) (encoders: g726le ) + D.A.L. adpcm_ima_amv ADPCM IMA AMV + D.A.L. adpcm_ima_apc ADPCM IMA CRYO APC + D.A.L. adpcm_ima_dat4 ADPCM IMA Eurocom DAT4 + D.A.L. adpcm_ima_dk3 ADPCM IMA Duck DK3 + D.A.L. adpcm_ima_dk4 ADPCM IMA Duck DK4 + D.A.L. adpcm_ima_ea_eacs ADPCM IMA Electronic Arts EACS + D.A.L. adpcm_ima_ea_sead ADPCM IMA Electronic Arts SEAD + D.A.L. adpcm_ima_iss ADPCM IMA Funcom ISS + D.A.L. adpcm_ima_oki ADPCM IMA Dialogic OKI + DEA.L. adpcm_ima_qt ADPCM IMA QuickTime + D.A.L. adpcm_ima_rad ADPCM IMA Radical + D.A.L. adpcm_ima_smjpeg ADPCM IMA Loki SDL MJPEG + DEA.L. adpcm_ima_wav ADPCM IMA WAV + D.A.L. adpcm_ima_ws ADPCM IMA Westwood + DEA.L. adpcm_ms ADPCM Microsoft + D.A.L. adpcm_mtaf ADPCM MTAF + D.A.L. adpcm_psx ADPCM Playstation + D.A.L. adpcm_sbpro_2 ADPCM Sound Blaster Pro 2-bit + D.A.L. adpcm_sbpro_3 ADPCM Sound Blaster Pro 2.6-bit + D.A.L. adpcm_sbpro_4 ADPCM Sound Blaster Pro 4-bit + DEA.L. adpcm_swf ADPCM Shockwave Flash + D.A.L. adpcm_thp ADPCM Nintendo THP + D.A.L. adpcm_thp_le ADPCM Nintendo THP (Little-Endian) + D.A.L. adpcm_vima LucasArts VIMA audio + D.A.L. adpcm_xa ADPCM CDROM XA + DEA.L. adpcm_yamaha ADPCM Yamaha + DEAI.S alac ALAC (Apple Lossless Audio Codec) + DEA.L. amr_nb AMR-NB (Adaptive Multi-Rate NarrowBand) (decoders: amrnb libopencore_amrnb ) (encoders: libopencore_amrnb ) + D.A.L. amr_wb AMR-WB (Adaptive Multi-Rate WideBand) (decoders: amrwb libopencore_amrwb ) + D.A..S ape Monkey's Audio + DEA.L. aptx aptX (Audio Processing Technology for Bluetooth) + DEA.L. aptx_hd aptX HD (Audio Processing Technology for Bluetooth) + D.A.L. atrac1 ATRAC1 (Adaptive TRansform Acoustic Coding) + D.A.L. atrac3 ATRAC3 (Adaptive TRansform Acoustic Coding 3) + D.A..S atrac3al ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless) + D.A.L. atrac3p ATRAC3+ (Adaptive TRansform Acoustic Coding 3+) (decoders: atrac3plus ) + D.A..S atrac3pal ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless) (decoders: atrac3plusal ) + D.A.L. atrac9 ATRAC9 (Adaptive TRansform Acoustic Coding 9) + D.A.L. avc On2 Audio for Video Codec (decoders: on2avc ) + D.A.L. binkaudio_dct Bink Audio (DCT) + D.A.L. binkaudio_rdft Bink Audio (RDFT) + D.A.L. bmv_audio Discworld II BMV audio + ..A.L. celt Constrained Energy Lapped Transform (CELT) + ..A.L. codec2 codec2 (very low bitrate speech codec) + DEA.L. comfortnoise RFC 3389 Comfort Noise + D.A.L. cook Cook / Cooker / Gecko (RealAudio G2) + D.A.L. dolby_e Dolby E + D.A.L. dsd_lsbf DSD (Direct Stream Digital), least significant bit first + D.A.L. dsd_lsbf_planar DSD (Direct Stream Digital), least significant bit first, planar + D.A.L. dsd_msbf DSD (Direct Stream Digital), most significant bit first + D.A.L. dsd_msbf_planar DSD (Direct Stream Digital), most significant bit first, planar + D.A.L. dsicinaudio Delphine Software International CIN audio + D.A.L. dss_sp Digital Speech Standard - Standard Play mode (DSS SP) + D.A..S dst DST (Direct Stream Transfer) + DEA.LS dts DCA (DTS Coherent Acoustics) (decoders: dca ) (encoders: dca ) + D.A.L. dvaudio DV audio + DEA.L. eac3 ATSC A/52B (AC-3, E-AC-3) + D.A.L. evrc EVRC (Enhanced Variable Rate Codec) + DEAI.S flac FLAC (Free Lossless Audio Codec) + DEA.L. g723_1 G.723.1 + D.A.L. g729 G.729 + D.A.L. gremlin_dpcm DPCM Gremlin + DEA.L. gsm GSM (decoders: gsm libgsm ) (encoders: libgsm ) + DEA.L. gsm_ms GSM Microsoft variant (decoders: gsm_ms libgsm_ms ) (encoders: libgsm_ms ) + D.A.L. iac IAC (Indeo Audio Coder) + D.A.L. ilbc iLBC (Internet Low Bitrate Codec) + D.A.L. imc IMC (Intel Music Coder) + D.A.L. interplay_dpcm DPCM Interplay + D.A.L. interplayacm Interplay ACM + D.A.L. mace3 MACE (Macintosh Audio Compression/Expansion) 3:1 + D.A.L. mace6 MACE (Macintosh Audio Compression/Expansion) 6:1 + D.A.L. metasound Voxware MetaSound + DEA..S mlp MLP (Meridian Lossless Packing) + D.A.L. mp1 MP1 (MPEG audio layer 1) (decoders: mp1 mp1float ) + DEA.L. mp2 MP2 (MPEG audio layer 2) (decoders: mp2 mp2float ) (encoders: mp2 mp2fixed ) + DEA.L. mp3 MP3 (MPEG audio layer 3) (decoders: mp3float mp3 ) (encoders: libmp3lame ) + D.A.L. mp3adu ADU (Application Data Unit) MP3 (MPEG audio layer 3) (decoders: mp3adufloat mp3adu ) + D.A.L. mp3on4 MP3onMP4 (decoders: mp3on4float mp3on4 ) + D.A..S mp4als MPEG-4 Audio Lossless Coding (ALS) (decoders: als ) + D.A.L. musepack7 Musepack SV7 (decoders: mpc7 ) + D.A.L. musepack8 Musepack SV8 (decoders: mpc8 ) + DEA.L. nellymoser Nellymoser Asao + DEA.L. opus Opus (Opus Interactive Audio Codec) (decoders: opus libopus ) (encoders: opus libopus ) + D.A.L. paf_audio Amazing Studio Packed Animation File Audio + DEA.L. pcm_alaw PCM A-law / G.711 A-law + D.A..S pcm_bluray PCM signed 16|20|24-bit big-endian for Blu-ray media + D.A..S pcm_dvd PCM signed 20|24-bit big-endian + D.A..S pcm_f16le PCM 16.8 floating point little-endian + D.A..S pcm_f24le PCM 24.0 floating point little-endian + DEA..S pcm_f32be PCM 32-bit floating point big-endian + DEA..S pcm_f32le PCM 32-bit floating point little-endian + DEA..S pcm_f64be PCM 64-bit floating point big-endian + DEA..S pcm_f64le PCM 64-bit floating point little-endian + D.A..S pcm_lxf PCM signed 20-bit little-endian planar + DEA.L. pcm_mulaw PCM mu-law / G.711 mu-law + DEA..S pcm_s16be PCM signed 16-bit big-endian + DEA..S pcm_s16be_planar PCM signed 16-bit big-endian planar + DEA..S pcm_s16le PCM signed 16-bit little-endian + DEA..S pcm_s16le_planar PCM signed 16-bit little-endian planar + DEA..S pcm_s24be PCM signed 24-bit big-endian + DEA..S pcm_s24daud PCM D-Cinema audio signed 24-bit + DEA..S pcm_s24le PCM signed 24-bit little-endian + DEA..S pcm_s24le_planar PCM signed 24-bit little-endian planar + DEA..S pcm_s32be PCM signed 32-bit big-endian + DEA..S pcm_s32le PCM signed 32-bit little-endian + DEA..S pcm_s32le_planar PCM signed 32-bit little-endian planar + DEA..S pcm_s64be PCM signed 64-bit big-endian + DEA..S pcm_s64le PCM signed 64-bit little-endian + DEA..S pcm_s8 PCM signed 8-bit + DEA..S pcm_s8_planar PCM signed 8-bit planar + DEA..S pcm_u16be PCM unsigned 16-bit big-endian + DEA..S pcm_u16le PCM unsigned 16-bit little-endian + DEA..S pcm_u24be PCM unsigned 24-bit big-endian + DEA..S pcm_u24le PCM unsigned 24-bit little-endian + DEA..S pcm_u32be PCM unsigned 32-bit big-endian + DEA..S pcm_u32le PCM unsigned 32-bit little-endian + DEA..S pcm_u8 PCM unsigned 8-bit + DEA.L. pcm_vidc PCM Archimedes VIDC + D.A.L. pcm_zork PCM Zork + D.A.L. qcelp QCELP / PureVoice + D.A.L. qdm2 QDesign Music Codec 2 + D.A.L. qdmc QDesign Music + DEA.L. ra_144 RealAudio 1.0 (14.4K) (decoders: real_144 ) (encoders: real_144 ) + D.A.L. ra_288 RealAudio 2.0 (28.8K) (decoders: real_288 ) + D.A..S ralf RealAudio Lossless + DEA.L. roq_dpcm DPCM id RoQ + DEA..S s302m SMPTE 302M + DEA.L. sbc SBC (low-complexity subband codec) + D.A.L. sdx2_dpcm DPCM Squareroot-Delta-Exact + D.A..S shorten Shorten + D.A.L. sipr RealAudio SIPR / ACELP.NET + D.A.L. smackaudio Smacker audio (decoders: smackaud ) + ..A.L. smv SMV (Selectable Mode Vocoder) + D.A.L. sol_dpcm DPCM Sol + DEA... sonic Sonic + .EA... sonicls Sonic lossless + DEA.L. speex Speex (decoders: libspeex ) (encoders: libspeex ) + D.AI.S tak TAK (Tom's lossless Audio Kompressor) + DEA..S truehd TrueHD + D.A.L. truespeech DSP Group TrueSpeech + DEAI.S tta TTA (True Audio) + D.A.L. twinvq VQF TwinVQ + D.A.L. vmdaudio Sierra VMD audio + DEA.L. vorbis Vorbis (decoders: vorbis libvorbis ) (encoders: vorbis libvorbis ) + D.A... wavesynth Wave synthesis pseudo-codec + DEAILS wavpack WavPack + D.A.L. westwood_snd1 Westwood Audio (SND1) (decoders: ws_snd1 ) + D.A..S wmalossless Windows Media Audio Lossless + D.A.L. wmapro Windows Media Audio 9 Professional + DEA.L. wmav1 Windows Media Audio 1 + DEA.L. wmav2 Windows Media Audio 2 + D.A.L. wmavoice Windows Media Audio Voice + D.A.L. xan_dpcm DPCM Xan + D.A.L. xma1 Xbox Media Audio 1 + D.A.L. xma2 Xbox Media Audio 2 + ..D... bin_data binary data + ..D... dvd_nav_packet DVD Nav packet + ..D... klv SMPTE 336M Key-Length-Value (KLV) metadata + ..D... otf OpenType font + ..D... scte_35 SCTE 35 Message Queue + ..D... timed_id3 timed ID3 metadata + ..D... ttf TrueType font + DES... ass ASS (Advanced SSA) subtitle (decoders: ssa ass ) (encoders: ssa ass ) + DES... dvb_subtitle DVB subtitles (decoders: dvbsub ) (encoders: dvbsub ) + ..S... dvb_teletext DVB teletext + DES... dvd_subtitle DVD subtitles (decoders: dvdsub ) (encoders: dvdsub ) + D.S... eia_608 EIA-608 closed captions (decoders: cc_dec ) + D.S... hdmv_pgs_subtitle HDMV Presentation Graphic Stream subtitles (decoders: pgssub ) + ..S... hdmv_text_subtitle HDMV Text subtitle + D.S... jacosub JACOsub subtitle + D.S... microdvd MicroDVD subtitle + DES... mov_text MOV text + D.S... mpl2 MPL2 subtitle + D.S... pjs PJS (Phoenix Japanimation Society) subtitle + D.S... realtext RealText subtitle + D.S... sami SAMI subtitle + ..S... srt SubRip subtitle with embedded timing + ..S... ssa SSA (SubStation Alpha) subtitle + D.S... stl Spruce subtitle format + DES... subrip SubRip subtitle (decoders: srt subrip ) (encoders: srt subrip ) + D.S... subviewer SubViewer subtitle + D.S... subviewer1 SubViewer v1 subtitle + DES... text raw UTF-8 text + ..S... ttml Timed Text Markup Language + D.S... vplayer VPlayer subtitle + DES... webvtt WebVTT subtitle + DES... xsub XSUB diff --git a/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-version b/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-version_0.10.9 similarity index 100% rename from src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-version rename to src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-version_0.10.9 diff --git a/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-version_4.1.1 b/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-version_4.1.1 new file mode 100644 index 00000000..36477051 --- /dev/null +++ b/src/test/resources/net/bramp/ffmpeg/fixtures/ffmpeg-version_4.1.1 @@ -0,0 +1,11 @@ +ffmpeg version n4.1.1 Copyright (c) 2000-2019 the FFmpeg developers +built with gcc 8.2.1 (GCC) 20181127 +configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3 +libavutil 56. 22.100 / 56. 22.100 +libavcodec 58. 35.100 / 58. 35.100 +libavformat 58. 20.100 / 58. 20.100 +libavdevice 58. 5.100 / 58. 5.100 +libavfilter 7. 40.101 / 7. 40.101 +libswscale 5. 3.100 / 5. 3.100 +libswresample 3. 3.100 / 3. 3.100 +libpostproc 55. 3.100 / 55. 3.100