JavaCPP bindings for FFmpeg multimedia framework providing comprehensive Java access to audio/video encoding, decoding, filtering, and format conversion
—
Comprehensive reference of constants, enumerations, and compile-time values used throughout the FFmpeg JavaCPP bindings for configuration, error handling, and API parameters.
// Media type constants for streams and codecs
int AVMEDIA_TYPE_UNKNOWN = -1; // Unknown media type
int AVMEDIA_TYPE_VIDEO = 0; // Video stream
int AVMEDIA_TYPE_AUDIO = 1; // Audio stream
int AVMEDIA_TYPE_DATA = 2; // Opaque data stream
int AVMEDIA_TYPE_SUBTITLE = 3; // Subtitle stream
int AVMEDIA_TYPE_ATTACHMENT = 4; // Attachment stream (fonts, images)
int AVMEDIA_TYPE_NB = 5; // Number of media types// Common pixel formats for video data
int AV_PIX_FMT_NONE = -1; // No pixel format
int AV_PIX_FMT_YUV420P = 0; // Planar YUV 4:2:0, 12bpp
int AV_PIX_FMT_YUYV422 = 1; // Packed YUV 4:2:2, 16bpp
int AV_PIX_FMT_RGB24 = 2; // Packed RGB 8:8:8, 24bpp
int AV_PIX_FMT_BGR24 = 3; // Packed BGR 8:8:8, 24bpp
int AV_PIX_FMT_YUV422P = 4; // Planar YUV 4:2:2, 16bpp
int AV_PIX_FMT_YUV444P = 5; // Planar YUV 4:4:4, 24bpp
int AV_PIX_FMT_YUV410P = 6; // Planar YUV 4:1:0, 9bpp
int AV_PIX_FMT_YUV411P = 7; // Planar YUV 4:1:1, 12bpp
int AV_PIX_FMT_GRAY8 = 8; // Y grayscale, 8bpp
int AV_PIX_FMT_MONOWHITE = 9; // Y 1bpp, 0 is white
int AV_PIX_FMT_MONOBLACK = 10; // Y 1bpp, 0 is black
int AV_PIX_FMT_PAL8 = 11; // 8-bit with palette
int AV_PIX_FMT_YUVJ420P = 12; // Planar YUV 4:2:0, 12bpp, full scale (JPEG)
int AV_PIX_FMT_YUVJ422P = 13; // Planar YUV 4:2:2, 16bpp, full scale (JPEG)
int AV_PIX_FMT_YUVJ444P = 14; // Planar YUV 4:4:4, 24bpp, full scale (JPEG)
// High bit depth formats
int AV_PIX_FMT_YUV420P10LE = 62; // Planar YUV 4:2:0, 15bpp, little-endian
int AV_PIX_FMT_YUV420P10BE = 63; // Planar YUV 4:2:0, 15bpp, big-endian
int AV_PIX_FMT_YUV420P16LE = 109; // Planar YUV 4:2:0, 24bpp, little-endian
int AV_PIX_FMT_YUV420P16BE = 110; // Planar YUV 4:2:0, 24bpp, big-endian
// Hardware acceleration formats
int AV_PIX_FMT_CUDA = 232; // NVIDIA CUDA format
int AV_PIX_FMT_VAAPI = 178; // Intel VA-API format
int AV_PIX_FMT_DXVA2_VLD = 133; // DirectX Video Acceleration
int AV_PIX_FMT_VIDEOTOOLBOX = 192; // Apple VideoToolbox format// Audio sample format constants
int AV_SAMPLE_FMT_NONE = -1; // No sample format
int AV_SAMPLE_FMT_U8 = 0; // Unsigned 8-bit
int AV_SAMPLE_FMT_S16 = 1; // Signed 16-bit
int AV_SAMPLE_FMT_S32 = 2; // Signed 32-bit
int AV_SAMPLE_FMT_FLT = 3; // 32-bit float
int AV_SAMPLE_FMT_DBL = 4; // 64-bit double
int AV_SAMPLE_FMT_U8P = 5; // Unsigned 8-bit, planar
int AV_SAMPLE_FMT_S16P = 6; // Signed 16-bit, planar
int AV_SAMPLE_FMT_S32P = 7; // Signed 32-bit, planar
int AV_SAMPLE_FMT_FLTP = 8; // 32-bit float, planar
int AV_SAMPLE_FMT_DBLP = 9; // 64-bit double, planar
int AV_SAMPLE_FMT_S64 = 10; // Signed 64-bit
int AV_SAMPLE_FMT_S64P = 11; // Signed 64-bit, planar// Major video codec identifiers
int AV_CODEC_ID_NONE = 0; // No codec
// MPEG codecs
int AV_CODEC_ID_MPEG1VIDEO = 1; // MPEG-1 video
int AV_CODEC_ID_MPEG2VIDEO = 2; // MPEG-2 video
int AV_CODEC_ID_MPEG4 = 12; // MPEG-4 Part 2
// H.26x codecs
int AV_CODEC_ID_H261 = 3; // ITU-T H.261
int AV_CODEC_ID_H263 = 4; // ITU-T H.263
int AV_CODEC_ID_H264 = 27; // ITU-T H.264/AVC
int AV_CODEC_ID_H265 = 173; // ITU-T H.265/HEVC
// Modern codecs
int AV_CODEC_ID_VP8 = 139; // Google VP8
int AV_CODEC_ID_VP9 = 167; // Google VP9
int AV_CODEC_ID_AV1 = 225; // AOMedia AV1
// Image formats
int AV_CODEC_ID_MJPEG = 7; // Motion JPEG
int AV_CODEC_ID_PNG = 61; // PNG image
int AV_CODEC_ID_BMP = 67; // BMP image
int AV_CODEC_ID_TIFF = 145; // TIFF image// Major audio codec identifiers (base = 65536)
int AV_CODEC_ID_PCM_S16LE = 65536; // PCM signed 16-bit little-endian
int AV_CODEC_ID_PCM_S16BE = 65537; // PCM signed 16-bit big-endian
int AV_CODEC_ID_PCM_U16LE = 65538; // PCM unsigned 16-bit little-endian
int AV_CODEC_ID_PCM_U16BE = 65539; // PCM unsigned 16-bit big-endian
// Compressed audio
int AV_CODEC_ID_MP2 = 86016; // MPEG Audio Layer 2
int AV_CODEC_ID_MP3 = 86017; // MPEG Audio Layer 3
int AV_CODEC_ID_AAC = 86018; // Advanced Audio Coding
int AV_CODEC_ID_AC3 = 86019; // Dolby Digital (AC-3)
int AV_CODEC_ID_DTS = 86020; // DTS Coherent Acoustics
int AV_CODEC_ID_VORBIS = 86021; // Ogg Vorbis
int AV_CODEC_ID_FLAC = 86028; // Free Lossless Audio Codec
int AV_CODEC_ID_OPUS = 86076; // Opus audio codec// Subtitle codec identifiers (base = 94208)
int AV_CODEC_ID_DVD_SUBTITLE = 94208; // DVD subtitles
int AV_CODEC_ID_DVB_SUBTITLE = 94209; // DVB subtitles
int AV_CODEC_ID_TEXT = 94210; // Raw text
int AV_CODEC_ID_XSUB = 94211; // XSUB subtitles
int AV_CODEC_ID_SSA = 94212; // SubStation Alpha
int AV_CODEC_ID_MOV_TEXT = 94213; // QuickTime text
int AV_CODEC_ID_HDMV_PGS_SUBTITLE = 94214; // HDMV PGS subtitles
int AV_CODEC_ID_DVB_TELETEXT = 94215; // DVB teletext
int AV_CODEC_ID_SRT = 94216; // SubRip subtitles
int AV_CODEC_ID_WEBVTT = 94225; // WebVTT subtitles// Format context flags
int AVFMT_NOFILE = 0x0001; // Format does not need file I/O
int AVFMT_NEEDNUMBER = 0x0002; // Format needs numbered files
int AVFMT_SHOW_IDS = 0x0008; // Format wants AVFormatContext.duration
int AVFMT_GLOBALHEADER = 0x0040; // Format wants global header
int AVFMT_NOTIMESTAMPS = 0x0080; // Format does not need timestamps
int AVFMT_GENERIC_INDEX = 0x0100; // Format allows timestamp discontinuities
int AVFMT_TS_DISCONT = 0x0200; // Format allows timestamp discontinuities
int AVFMT_VARIABLE_FPS = 0x0400; // Format allows variable fps
int AVFMT_NODIMENSIONS = 0x0800; // Format does not need width/height
int AVFMT_NOSTREAMS = 0x1000; // Format does not require any streams
int AVFMT_NOBINSEARCH = 0x2000; // Format does not allow binary search
int AVFMT_NOGENSEARCH = 0x4000; // Format does not allow generic search
int AVFMT_NO_BYTE_SEEK = 0x8000; // Format does not allow byte seeking// Stream disposition flags
int AV_DISPOSITION_DEFAULT = 0x0001; // Default stream
int AV_DISPOSITION_DUB = 0x0002; // Dubbed stream
int AV_DISPOSITION_ORIGINAL = 0x0004; // Original language
int AV_DISPOSITION_COMMENT = 0x0008; // Commentary stream
int AV_DISPOSITION_LYRICS = 0x0010; // Lyrics stream
int AV_DISPOSITION_KARAOKE = 0x0020; // Karaoke stream
int AV_DISPOSITION_FORCED = 0x0040; // Forced subtitles
int AV_DISPOSITION_HEARING_IMPAIRED = 0x0080; // For hearing impaired
int AV_DISPOSITION_VISUAL_IMPAIRED = 0x0100; // For visually impaired
int AV_DISPOSITION_CLEAN_EFFECTS = 0x0200; // Clean effects audio
int AV_DISPOSITION_ATTACHED_PIC = 0x0400; // Attached picture
int AV_DISPOSITION_TIMED_THUMBNAILS = 0x0800; // Timed thumbnails// FFmpeg error code functions
int AVERROR_BSF_NOT_FOUND(); // Bitstream filter not found
int AVERROR_BUG(); // Internal bug
int AVERROR_BUFFER_TOO_SMALL(); // Buffer too small
int AVERROR_DECODER_NOT_FOUND(); // Decoder not found
int AVERROR_DEMUXER_NOT_FOUND(); // Demuxer not found
int AVERROR_ENCODER_NOT_FOUND(); // Encoder not found
int AVERROR_EOF(); // End of file
int AVERROR_EXIT(); // Immediate exit requested
int AVERROR_EXTERNAL(); // External library error
int AVERROR_FILTER_NOT_FOUND(); // Filter not found
int AVERROR_INVALIDDATA(); // Invalid data found
int AVERROR_MUXER_NOT_FOUND(); // Muxer not found
int AVERROR_OPTION_NOT_FOUND(); // Option not found
int AVERROR_PATCHWELCOME(); // Feature not implemented
int AVERROR_PROTOCOL_NOT_FOUND(); // Protocol not found
int AVERROR_STREAM_NOT_FOUND(); // Stream not found
int AVERROR_BUG2(); // Internal bug #2
int AVERROR_UNKNOWN(); // Unknown error
int AVERROR_EXPERIMENTAL(); // Experimental feature
int AVERROR_INPUT_CHANGED(); // Input changed between calls
int AVERROR_OUTPUT_CHANGED(); // Output changed between calls
int AVERROR_HTTP_BAD_REQUEST(); // HTTP 400 Bad Request
int AVERROR_HTTP_UNAUTHORIZED(); // HTTP 401 Unauthorized
int AVERROR_HTTP_FORBIDDEN(); // HTTP 403 Forbidden
int AVERROR_HTTP_NOT_FOUND(); // HTTP 404 Not Found
int AVERROR_HTTP_OTHER_4XX(); // HTTP 4xx client error
int AVERROR_HTTP_SERVER_ERROR(); // HTTP 5xx server error// Seeking operation flags
int AVSEEK_FLAG_BACKWARD = 1; // Seek backwards
int AVSEEK_FLAG_BYTE = 2; // Seek by byte position
int AVSEEK_FLAG_ANY = 4; // Seek to any frame (not just keyframes)
int AVSEEK_FLAG_FRAME = 8; // Seek by frame number// Color primaries
int AVCOL_PRI_RESERVED0 = 0; // Reserved
int AVCOL_PRI_BT709 = 1; // ITU-R BT.709 (HDTV)
int AVCOL_PRI_UNSPECIFIED = 2; // Unspecified
int AVCOL_PRI_RESERVED = 3; // Reserved
int AVCOL_PRI_BT470M = 4; // ITU-R BT.470 System M
int AVCOL_PRI_BT470BG = 5; // ITU-R BT.470 System B/G
int AVCOL_PRI_SMPTE170M = 6; // SMPTE-170M (NTSC)
int AVCOL_PRI_SMPTE240M = 7; // SMPTE-240M
int AVCOL_PRI_FILM = 8; // Generic film
int AVCOL_PRI_BT2020 = 9; // ITU-R BT.2020 (UHD)
int AVCOL_PRI_SMPTE428 = 10; // SMPTE ST 428-1
int AVCOL_PRI_SMPTE431 = 11; // SMPTE RP 431-2
int AVCOL_PRI_SMPTE432 = 12; // SMPTE EG 432-1
int AVCOL_PRI_JEDEC_P22 = 22; // JEDEC P22 phosphors
// Color transfer characteristics
int AVCOL_TRC_RESERVED0 = 0; // Reserved
int AVCOL_TRC_BT709 = 1; // ITU-R BT.709
int AVCOL_TRC_UNSPECIFIED = 2; // Unspecified
int AVCOL_TRC_RESERVED = 3; // Reserved
int AVCOL_TRC_GAMMA22 = 4; // Gamma 2.2
int AVCOL_TRC_GAMMA28 = 5; // Gamma 2.8
int AVCOL_TRC_SMPTE170M = 6; // SMPTE-170M
int AVCOL_TRC_SMPTE240M = 7; // SMPTE-240M
int AVCOL_TRC_LINEAR = 8; // Linear transfer
int AVCOL_TRC_LOG = 9; // Logarithmic (100:1 range)
int AVCOL_TRC_LOG_SQRT = 10; // Logarithmic (100*sqrt(10):1)
int AVCOL_TRC_IEC61966_2_4 = 11; // IEC 61966-2-4
int AVCOL_TRC_BT1361_ECG = 12; // ITU-R BT.1361
int AVCOL_TRC_IEC61966_2_1 = 13; // IEC 61966-2-1 (sRGB)
int AVCOL_TRC_BT2020_10 = 14; // ITU-R BT.2020 (10-bit)
int AVCOL_TRC_BT2020_12 = 15; // ITU-R BT.2020 (12-bit)
int AVCOL_TRC_SMPTE2084 = 16; // SMPTE ST 2084 (PQ)
int AVCOL_TRC_SMPTE428 = 17; // SMPTE ST 428-1
int AVCOL_TRC_ARIB_STD_B67 = 18; // ARIB STD-B67 (HLG)
// Color space/matrix coefficients
int AVCOL_SPC_RGB = 0; // RGB
int AVCOL_SPC_BT709 = 1; // ITU-R BT.709
int AVCOL_SPC_UNSPECIFIED = 2; // Unspecified
int AVCOL_SPC_RESERVED = 3; // Reserved
int AVCOL_SPC_FCC = 4; // FCC regulations
int AVCOL_SPC_BT470BG = 5; // ITU-R BT.470 System B/G
int AVCOL_SPC_SMPTE170M = 6; // SMPTE-170M
int AVCOL_SPC_SMPTE240M = 7; // SMPTE-240M
int AVCOL_SPC_YCGCO = 8; // YCgCo
int AVCOL_SPC_BT2020_NCL = 9; // ITU-R BT.2020 non-constant luminance
int AVCOL_SPC_BT2020_CL = 10; // ITU-R BT.2020 constant luminance
int AVCOL_SPC_SMPTE2085 = 11; // SMPTE ST 2085
int AVCOL_SPC_CHROMA_DERIVED_NCL = 12; // Chromaticity-derived non-constant luminance
int AVCOL_SPC_CHROMA_DERIVED_CL = 13; // Chromaticity-derived constant luminance
int AVCOL_SPC_ICTCP = 14; // ITU-R BT.2100 ICtCp// Threading type constants
int FF_THREAD_FRAME = 1; // Frame-level threading
int FF_THREAD_SLICE = 2; // Slice-level threading// Standard channel layout constants
long AV_CH_FRONT_LEFT = 0x00000001L;
long AV_CH_FRONT_RIGHT = 0x00000002L;
long AV_CH_FRONT_CENTER = 0x00000004L;
long AV_CH_LOW_FREQUENCY = 0x00000008L;
long AV_CH_BACK_LEFT = 0x00000010L;
long AV_CH_BACK_RIGHT = 0x00000020L;
long AV_CH_FRONT_LEFT_OF_CENTER = 0x00000040L;
long AV_CH_FRONT_RIGHT_OF_CENTER = 0x00000080L;
long AV_CH_BACK_CENTER = 0x00000100L;
long AV_CH_SIDE_LEFT = 0x00000200L;
long AV_CH_SIDE_RIGHT = 0x00000400L;
long AV_CH_TOP_CENTER = 0x00000800L;
// Common channel layout combinations
long AV_CH_LAYOUT_MONO = AV_CH_FRONT_CENTER;
long AV_CH_LAYOUT_STEREO = AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT;
long AV_CH_LAYOUT_2POINT1 = AV_CH_LAYOUT_STEREO | AV_CH_LOW_FREQUENCY;
long AV_CH_LAYOUT_SURROUND = AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER;
long AV_CH_LAYOUT_4POINT0 = AV_CH_LAYOUT_SURROUND | AV_CH_BACK_CENTER;
long AV_CH_LAYOUT_5POINT0 = AV_CH_LAYOUT_SURROUND | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT;
long AV_CH_LAYOUT_5POINT1 = AV_CH_LAYOUT_5POINT0 | AV_CH_LOW_FREQUENCY;
long AV_CH_LAYOUT_7POINT1 = AV_CH_LAYOUT_5POINT1 | AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT;// Check media type
if (stream.codecpar().codec_type() == AVMEDIA_TYPE_VIDEO) {
System.out.println("This is a video stream");
}
// Set pixel format
codecContext.pix_fmt(AV_PIX_FMT_YUV420P);
// Handle specific error
int result = avcodec_open2(codecContext, codec, null);
if (result == AVERROR_DECODER_NOT_FOUND()) {
System.err.println("Decoder not found");
} else if (result < 0) {
System.err.println("Other error: " + result);
}
// Configure audio format
codecContext.sample_fmt(AV_SAMPLE_FMT_FLTP);
codecContext.channel_layout(AV_CH_LAYOUT_STEREO);// Get human-readable names for constants
String pixelFormatName = av_get_pix_fmt_name(AV_PIX_FMT_YUV420P).getString();
String sampleFormatName = av_get_sample_fmt_name(AV_SAMPLE_FMT_FLTP).getString();
System.out.println("Pixel format: " + pixelFormatName);
System.out.println("Sample format: " + sampleFormatName);This comprehensive reference covers the most commonly used constants and enumerations in FFmpeg JavaCPP bindings, providing the numeric values and symbolic names needed for effective multimedia programming.
Install with Tessl CLI
npx tessl i tessl/maven-org-bytedeco--ffmpeg