Avcodec
This module contains decoders and encoders for audio, video and subtitle codecs.
type descriptor = {
media_type : Avutil.media_type;
name : string;
long_name : string option;
properties : [ `Intra_only
| `Lossy
| `Lossless
| `Reorder
| `Fields
| `Bitmap_sub
| `Text_sub ]
list;
mime_types : string list;
profiles : profile list;
}
val descriptor : 'media params -> descriptor option
Get the params descriptor.
val time_base : 'media encoder -> Avutil.rational
Get the time base of a given encoder.
val name : (_, _) codec -> string
Get the name of a given codec.
type capability = [
| `Draw_horiz_band
| `Dr1
| `Delay
| `Small_last_frame
| `Subframes
| `Experimental
| `Channel_conf
| `Frame_threads
| `Slice_threads
| `Param_change
| `Other_threads
| `Variable_frame_size
| `Avoid_probing
| `Hardware
| `Hybrid
| `Encoder_reordered_opaque
| `Encoder_flush
| `Encoder_recon_frame
]
Codec capabilities.
val capabilities : ([< `Audio | `Video ], encode) codec -> capability list
Get the encoding capabilities for this codec.
Codec hardware config method.
type hw_config = {
pixel_format : Avutil.Pixel_format.t;
methods : hw_config_method list;
device_type : Avutil.HwContext.device_type;
}
Hardward config for the given codec.
module Packet : sig ... end
Packet.
module Audio : sig ... end
Audio codecs.
module Video : sig ... end
Video codecs.
module Subtitle : sig ... end
Subtitle codecs.
module Unknown : sig ... end
type id = [
| `None
| `Mpeg1video
| `Mpeg2video
| `H261
| `H263
| `Rv10
| `Rv20
| `Mjpeg
| `Mjpegb
| `Ljpeg
| `Sp5x
| `Jpegls
| `Mpeg4
| `Rawvideo
| `Msmpeg4v1
| `Msmpeg4v2
| `Msmpeg4v3
| `Wmv1
| `Wmv2
| `H263p
| `H263i
| `Flv1
| `Svq1
| `Svq3
| `Dvvideo
| `Huffyuv
| `Cyuv
| `H264
| `Indeo3
| `Vp3
| `Theora
| `Asv1
| `Asv2
| `Ffv1
| `_4xm
| `Vcr1
| `Cljr
| `Mdec
| `Roq
| `Interplay_video
| `Xan_wc3
| `Xan_wc4
| `Rpza
| `Cinepak
| `Ws_vqa
| `Msrle
| `Msvideo1
| `Idcin
| `_8bps
| `Smc
| `Flic
| `Truemotion1
| `Vmdvideo
| `Mszh
| `Zlib
| `Qtrle
| `Tscc
| `Ulti
| `Qdraw
| `Vixl
| `Qpeg
| `Png
| `Ppm
| `Pbm
| `Pgm
| `Pgmyuv
| `Pam
| `Ffvhuff
| `Rv30
| `Rv40
| `Vc1
| `Wmv3
| `Loco
| `Wnv1
| `Aasc
| `Indeo2
| `Fraps
| `Truemotion2
| `Bmp
| `Cscd
| `Mmvideo
| `Zmbv
| `Avs
| `Smackvideo
| `Nuv
| `Kmvc
| `Flashsv
| `Cavs
| `Jpeg2000
| `Vmnc
| `Vp5
| `Vp6
| `Vp6f
| `Targa
| `Dsicinvideo
| `Tiertexseqvideo
| `Tiff
| `Gif
| `Dxa
| `Dnxhd
| `Thp
| `Sgi
| `C93
| `Bethsoftvid
| `Ptx
| `Txd
| `Vp6a
| `Amv
| `Vb
| `Pcx
| `Sunrast
| `Indeo4
| `Indeo5
| `Mimic
| `Rl2
| `Escape124
| `Dirac
| `Bfi
| `Cmv
| `Motionpixels
| `Tgv
| `Tgq
| `Tqi
| `Aura
| `Aura2
| `V210x
| `Tmv
| `V210
| `Dpx
| `Mad
| `Frwu
| `Flashsv2
| `Cdgraphics
| `R210
| `Anm
| `Binkvideo
| `Iff_ilbm
| `Kgv1
| `Yop
| `Vp8
| `Pictor
| `Ansi
| `A64_multi
| `A64_multi5
| `R10k
| `Mxpeg
| `Lagarith
| `Prores
| `Jv
| `Dfa
| `Wmv3image
| `Vc1image
| `Utvideo
| `Bmv_video
| `Vble
| `Dxtory
| `V410
| `Xwd
| `Cdxl
| `Xbm
| `Zerocodec
| `Mss1
| `Msa1
| `Tscc2
| `Mts2
| `Cllc
| `Mss2
| `Vp9
| `Aic
| `Escape130
| `G2m
| `Webp
| `Hnm4_video
| `Hevc
| `Fic
| `Alias_pix
| `Brender_pix
| `Paf_video
| `Exr
| `Vp7
| `Sanm
| `Sgirle
| `Mvc1
| `Mvc2
| `Hqx
| `Tdsc
| `Hq_hqa
| `Hap
| `Dds
| `Dxv
| `Screenpresso
| `Rscc
| `Avs2
| `Pgx
| `Avs3
| `Msp2
| `Vvc
| `Y41p
| `Avrp
| `_012v
| `Avui
| `Ayuv
| `Targa_y216
| `V308
| `V408
| `Yuv4
| `Avrn
| `Cpia
| `Xface
| `Snow
| `Smvjpeg
| `Apng
| `Daala
| `Cfhd
| `Truemotion2rt
| `M101
| `Magicyuv
| `Sheervideo
| `Ylc
| `Psd
| `Pixlet
| `Speedhq
| `Fmvc
| `Scpr
| `Clearvideo
| `Xpm
| `Av1
| `Bitpacked
| `Mscc
| `Srgc
| `Svg
| `Gdv
| `Fits
| `Imm4
| `Prosumer
| `Mwsc
| `Wcmv
| `Rasc
| `Hymt
| `Arbc
| `Agm
| `Lscr
| `Vp4
| `Imm5
| `Mvdv
| `Mvha
| `Cdtoons
| `Mv30
| `Notchlc
| `Pfm
| `Mobiclip
| `Photocd
| `Ipu
| `Argo
| `Cri
| `Simbiosis_imx
| `Sga_video
| `Gem
| `Vbn
| `Jpegxl
| `Qoi
| `Phm
| `Radiance_hdr
| `Wbmp
| `Media100
| `Vqc
| `Pdv
| `Evc
| `Rtv1
| `Vmix
| `First_audio
| `Pcm_s16le
| `Pcm_s16be
| `Pcm_u16le
| `Pcm_u16be
| `Pcm_s8
| `Pcm_u8
| `Pcm_mulaw
| `Pcm_alaw
| `Pcm_s32le
| `Pcm_s32be
| `Pcm_u32le
| `Pcm_u32be
| `Pcm_s24le
| `Pcm_s24be
| `Pcm_u24le
| `Pcm_u24be
| `Pcm_s24daud
| `Pcm_zork
| `Pcm_s16le_planar
| `Pcm_dvd
| `Pcm_f32be
| `Pcm_f32le
| `Pcm_f64be
| `Pcm_f64le
| `Pcm_bluray
| `Pcm_lxf
| `S302m
| `Pcm_s8_planar
| `Pcm_s24le_planar
| `Pcm_s32le_planar
| `Pcm_s16be_planar
| `Pcm_s64le
| `Pcm_s64be
| `Pcm_f16le
| `Pcm_f24le
| `Pcm_vidc
| `Pcm_sga
| `Adpcm_ima_qt
| `Adpcm_ima_wav
| `Adpcm_ima_dk3
| `Adpcm_ima_dk4
| `Adpcm_ima_ws
| `Adpcm_ima_smjpeg
| `Adpcm_ms
| `Adpcm_4xm
| `Adpcm_xa
| `Adpcm_adx
| `Adpcm_ea
| `Adpcm_g726
| `Adpcm_ct
| `Adpcm_swf
| `Adpcm_yamaha
| `Adpcm_sbpro_4
| `Adpcm_sbpro_3
| `Adpcm_sbpro_2
| `Adpcm_thp
| `Adpcm_ima_amv
| `Adpcm_ea_r1
| `Adpcm_ea_r3
| `Adpcm_ea_r2
| `Adpcm_ima_ea_sead
| `Adpcm_ima_ea_eacs
| `Adpcm_ea_xas
| `Adpcm_ea_maxis_xa
| `Adpcm_ima_iss
| `Adpcm_g722
| `Adpcm_ima_apc
| `Adpcm_vima
| `Adpcm_afc
| `Adpcm_ima_oki
| `Adpcm_dtk
| `Adpcm_ima_rad
| `Adpcm_g726le
| `Adpcm_thp_le
| `Adpcm_psx
| `Adpcm_aica
| `Adpcm_ima_dat4
| `Adpcm_mtaf
| `Adpcm_agm
| `Adpcm_argo
| `Adpcm_ima_ssi
| `Adpcm_zork
| `Adpcm_ima_apm
| `Adpcm_ima_alp
| `Adpcm_ima_mtf
| `Adpcm_ima_cunning
| `Adpcm_ima_moflex
| `Adpcm_ima_acorn
| `Adpcm_xmd
| `Amr_nb
| `Amr_wb
| `Ra_144
| `Ra_288
| `Roq_dpcm
| `Interplay_dpcm
| `Xan_dpcm
| `Sol_dpcm
| `Sdx2_dpcm
| `Gremlin_dpcm
| `Derf_dpcm
| `Wady_dpcm
| `Cbd2_dpcm
| `Mp2
| `Mp3
| `Aac
| `Ac3
| `Dts
| `Vorbis
| `Dvaudio
| `Wmav1
| `Wmav2
| `Mace3
| `Mace6
| `Vmdaudio
| `Flac
| `Mp3adu
| `Mp3on4
| `Shorten
| `Alac
| `Westwood_snd1
| `Gsm
| `Qdm2
| `Cook
| `Truespeech
| `Tta
| `Smackaudio
| `Qcelp
| `Wavpack
| `Dsicinaudio
| `Imc
| `Musepack7
| `Mlp
| `Gsm_ms
| `Atrac3
| `Ape
| `Nellymoser
| `Musepack8
| `Speex
| `Wmavoice
| `Wmapro
| `Wmalossless
| `Atrac3p
| `Eac3
| `Sipr
| `Mp1
| `Twinvq
| `Truehd
| `Mp4als
| `Atrac1
| `Binkaudio_rdft
| `Binkaudio_dct
| `Aac_latm
| `Qdmc
| `Celt
| `G723_1
| `G729
| `_8svx_exp
| `_8svx_fib
| `Bmv_audio
| `Ralf
| `Iac
| `Ilbc
| `Opus
| `Comfort_noise
| `Tak
| `Metasound
| `Paf_audio
| `On2avc
| `Dss_sp
| `Codec2
| `Ffwavesynth
| `Sonic
| `Sonic_ls
| `Evrc
| `Smv
| `Dsd_lsbf
| `Dsd_msbf
| `Dsd_lsbf_planar
| `Dsd_msbf_planar
| `_4gv
| `Interplay_acm
| `Xma1
| `Xma2
| `Dst
| `Atrac3al
| `Atrac3pal
| `Dolby_e
| `Aptx
| `Aptx_hd
| `Sbc
| `Atrac9
| `Hcom
| `Acelp_kelvin
| `Mpegh_3d_audio
| `Siren
| `Hca
| `Fastaudio
| `Msnsiren
| `Dfpwm
| `Bonk
| `Misc4
| `Apac
| `Ftr
| `Wavarc
| `Rka
| `Ac4
| `Osq
| `First_subtitle
| `Dvd_subtitle
| `Dvb_subtitle
| `Text
| `Xsub
| `Ssa
| `Mov_text
| `Hdmv_pgs_subtitle
| `Dvb_teletext
| `Srt
| `Microdvd
| `Eia_608
| `Jacosub
| `Sami
| `Realtext
| `Stl
| `Subviewer1
| `Subviewer
| `Subrip
| `Webvtt
| `Mpl2
| `Vplayer
| `Pjs
| `Ass
| `Hdmv_text_subtitle
| `Ttml
| `First_unknown
| `Ttf
| `Scte_35
| `Epg
| `Bintext
| `Xbin
| `Idf
| `Otf
| `Smpte_klv
| `Timed_id3
| `Bin_data
| `Smpte_2038
| `Probe
| `Mpeg2ts
| `Mpeg4systems
| `Ffmetadata
| `Wrapped_avframe
| `Vnull
| `Anull
]
val string_of_id : id -> string
module BitstreamFilter : sig ... end
val decode :
'media decoder ->
('media Avutil.frame -> unit) ->
'media Packet.t ->
unit
Avcodec.decode decoder f packet
applies function f
to the decoded frames frome the packet
according to the decoder
configuration.
Raise Error if the decoding failed.
val flush_decoder : 'media decoder -> ('media Avutil.frame -> unit) -> unit
Avcodec.flush_decoder decoder f
applies function f
to the decoded frames frome the buffered packets in the decoder
.
Raise Error if the decoding failed.
val encode :
'media encoder ->
('media Packet.t -> unit) ->
'media Avutil.frame ->
unit
Avcodec.encode encoder f frame
applies function f
to the encoded packets from the frame
according to the encoder
configuration.
Raise Error if the encoding failed.