Module Avcodec

This module contains decoders and encoders for audio, video and subtitle codecs.

type ('media, 'mode) codec
type 'media params
type 'media decoder
type 'media encoder
type encode = [
  1. | `Encoder
]
type decode = [
  1. | `Decoder
]
type profile = {
  1. id : int;
  2. profile_name : string;
}
type descriptor = {
  1. media_type : Avutil.media_type;
  2. name : string;
  3. long_name : string option;
  4. properties : [ `Intra_only | `Lossy | `Lossless | `Reorder | `Bitmap_sub | `Text_sub ] list;
  5. mime_types : string list;
  6. profiles : profile list;
}
Constants
val flag_qscale : int
val params : 'media encoder -> 'media params

Get the params of a given encoder

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 = [
  1. | `Draw_horiz_band
  2. | `Dr1
  3. | `Truncated
  4. | `Delay
  5. | `Small_last_frame
  6. | `Subframes
  7. | `Experimental
  8. | `Channel_conf
  9. | `Frame_threads
  10. | `Slice_threads
  11. | `Param_change
  12. | `Other_threads
  13. | `Auto_threads
  14. | `Variable_frame_size
  15. | `Avoid_probing
  16. | `Intra_only
  17. | `Lossless
  18. | `Hardware
  19. | `Hybrid
  20. | `Encoder_reordered_opaque
  21. | `Encoder_flush
]

Codec capabilities.

val capabilities : ([< `Audio | `Video ], encode) codec -> capability list

Get the encoding capabilities for this codec.

type hw_config_method = [
  1. | `Hw_device_ctx
  2. | `Hw_frames_ctx
  3. | `Internal
  4. | `Ad_hoc
]

Codec hardware config method.

type hw_config = {
  1. pixel_format : Avutil.Pixel_format.t;
  2. methods : hw_config_method list;
  3. device_type : Avutil.HwContext.device_type;
}

Hardward config for the given codec.

val hw_configs : ([< `Audio | `Video ], _) codec -> hw_config list

Get the codec's hardward configs.

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 = [
  1. | `None
  2. | `Mpeg1video
  3. | `Mpeg2video
  4. | `H261
  5. | `H263
  6. | `Rv10
  7. | `Rv20
  8. | `Mjpeg
  9. | `Mjpegb
  10. | `Ljpeg
  11. | `Sp5x
  12. | `Jpegls
  13. | `Mpeg4
  14. | `Rawvideo
  15. | `Msmpeg4v1
  16. | `Msmpeg4v2
  17. | `Msmpeg4v3
  18. | `Wmv1
  19. | `Wmv2
  20. | `H263p
  21. | `H263i
  22. | `Flv1
  23. | `Svq1
  24. | `Svq3
  25. | `Dvvideo
  26. | `Huffyuv
  27. | `Cyuv
  28. | `H264
  29. | `Indeo3
  30. | `Vp3
  31. | `Theora
  32. | `Asv1
  33. | `Asv2
  34. | `Ffv1
  35. | `_4xm
  36. | `Vcr1
  37. | `Cljr
  38. | `Mdec
  39. | `Roq
  40. | `Interplay_video
  41. | `Xan_wc3
  42. | `Xan_wc4
  43. | `Rpza
  44. | `Cinepak
  45. | `Ws_vqa
  46. | `Msrle
  47. | `Msvideo1
  48. | `Idcin
  49. | `_8bps
  50. | `Smc
  51. | `Flic
  52. | `Truemotion1
  53. | `Vmdvideo
  54. | `Mszh
  55. | `Zlib
  56. | `Qtrle
  57. | `Tscc
  58. | `Ulti
  59. | `Qdraw
  60. | `Vixl
  61. | `Qpeg
  62. | `Png
  63. | `Ppm
  64. | `Pbm
  65. | `Pgm
  66. | `Pgmyuv
  67. | `Pam
  68. | `Ffvhuff
  69. | `Rv30
  70. | `Rv40
  71. | `Vc1
  72. | `Wmv3
  73. | `Loco
  74. | `Wnv1
  75. | `Aasc
  76. | `Indeo2
  77. | `Fraps
  78. | `Truemotion2
  79. | `Bmp
  80. | `Cscd
  81. | `Mmvideo
  82. | `Zmbv
  83. | `Avs
  84. | `Smackvideo
  85. | `Nuv
  86. | `Kmvc
  87. | `Flashsv
  88. | `Cavs
  89. | `Jpeg2000
  90. | `Vmnc
  91. | `Vp5
  92. | `Vp6
  93. | `Vp6f
  94. | `Targa
  95. | `Dsicinvideo
  96. | `Tiertexseqvideo
  97. | `Tiff
  98. | `Gif
  99. | `Dxa
  100. | `Dnxhd
  101. | `Thp
  102. | `Sgi
  103. | `C93
  104. | `Bethsoftvid
  105. | `Ptx
  106. | `Txd
  107. | `Vp6a
  108. | `Amv
  109. | `Vb
  110. | `Pcx
  111. | `Sunrast
  112. | `Indeo4
  113. | `Indeo5
  114. | `Mimic
  115. | `Rl2
  116. | `Escape124
  117. | `Dirac
  118. | `Bfi
  119. | `Cmv
  120. | `Motionpixels
  121. | `Tgv
  122. | `Tgq
  123. | `Tqi
  124. | `Aura
  125. | `Aura2
  126. | `V210x
  127. | `Tmv
  128. | `V210
  129. | `Dpx
  130. | `Mad
  131. | `Frwu
  132. | `Flashsv2
  133. | `Cdgraphics
  134. | `R210
  135. | `Anm
  136. | `Binkvideo
  137. | `Iff_ilbm
  138. | `Kgv1
  139. | `Yop
  140. | `Vp8
  141. | `Pictor
  142. | `Ansi
  143. | `A64_multi
  144. | `A64_multi5
  145. | `R10k
  146. | `Mxpeg
  147. | `Lagarith
  148. | `Prores
  149. | `Jv
  150. | `Dfa
  151. | `Wmv3image
  152. | `Vc1image
  153. | `Utvideo
  154. | `Bmv_video
  155. | `Vble
  156. | `Dxtory
  157. | `V410
  158. | `Xwd
  159. | `Cdxl
  160. | `Xbm
  161. | `Zerocodec
  162. | `Mss1
  163. | `Msa1
  164. | `Tscc2
  165. | `Mts2
  166. | `Cllc
  167. | `Mss2
  168. | `Vp9
  169. | `Aic
  170. | `Escape130
  171. | `G2m
  172. | `Webp
  173. | `Hnm4_video
  174. | `Hevc
  175. | `Fic
  176. | `Alias_pix
  177. | `Brender_pix
  178. | `Paf_video
  179. | `Exr
  180. | `Vp7
  181. | `Sanm
  182. | `Sgirle
  183. | `Mvc1
  184. | `Mvc2
  185. | `Hqx
  186. | `Tdsc
  187. | `Hq_hqa
  188. | `Hap
  189. | `Dds
  190. | `Dxv
  191. | `Screenpresso
  192. | `Rscc
  193. | `Avs2
  194. | `Pgx
  195. | `Avs3
  196. | `Msp2
  197. | `Vvc
  198. | `Y41p
  199. | `Avrp
  200. | `_012v
  201. | `Avui
  202. | `Ayuv
  203. | `Targa_y216
  204. | `V308
  205. | `V408
  206. | `Yuv4
  207. | `Avrn
  208. | `Cpia
  209. | `Xface
  210. | `Snow
  211. | `Smvjpeg
  212. | `Apng
  213. | `Daala
  214. | `Cfhd
  215. | `Truemotion2rt
  216. | `M101
  217. | `Magicyuv
  218. | `Sheervideo
  219. | `Ylc
  220. | `Psd
  221. | `Pixlet
  222. | `Speedhq
  223. | `Fmvc
  224. | `Scpr
  225. | `Clearvideo
  226. | `Xpm
  227. | `Av1
  228. | `Bitpacked
  229. | `Mscc
  230. | `Srgc
  231. | `Svg
  232. | `Gdv
  233. | `Fits
  234. | `Imm4
  235. | `Prosumer
  236. | `Mwsc
  237. | `Wcmv
  238. | `Rasc
  239. | `Hymt
  240. | `Arbc
  241. | `Agm
  242. | `Lscr
  243. | `Vp4
  244. | `Imm5
  245. | `Mvdv
  246. | `Mvha
  247. | `Cdtoons
  248. | `Mv30
  249. | `Notchlc
  250. | `Pfm
  251. | `Mobiclip
  252. | `Photocd
  253. | `Ipu
  254. | `Argo
  255. | `Cri
  256. | `Simbiosis_imx
  257. | `Sga_video
  258. | `First_audio
  259. | `Pcm_s16le
  260. | `Pcm_s16be
  261. | `Pcm_u16le
  262. | `Pcm_u16be
  263. | `Pcm_s8
  264. | `Pcm_u8
  265. | `Pcm_mulaw
  266. | `Pcm_alaw
  267. | `Pcm_s32le
  268. | `Pcm_s32be
  269. | `Pcm_u32le
  270. | `Pcm_u32be
  271. | `Pcm_s24le
  272. | `Pcm_s24be
  273. | `Pcm_u24le
  274. | `Pcm_u24be
  275. | `Pcm_s24daud
  276. | `Pcm_zork
  277. | `Pcm_s16le_planar
  278. | `Pcm_dvd
  279. | `Pcm_f32be
  280. | `Pcm_f32le
  281. | `Pcm_f64be
  282. | `Pcm_f64le
  283. | `Pcm_bluray
  284. | `Pcm_lxf
  285. | `S302m
  286. | `Pcm_s8_planar
  287. | `Pcm_s24le_planar
  288. | `Pcm_s32le_planar
  289. | `Pcm_s16be_planar
  290. | `Pcm_s64le
  291. | `Pcm_s64be
  292. | `Pcm_f16le
  293. | `Pcm_f24le
  294. | `Pcm_vidc
  295. | `Pcm_sga
  296. | `Adpcm_ima_qt
  297. | `Adpcm_ima_wav
  298. | `Adpcm_ima_dk3
  299. | `Adpcm_ima_dk4
  300. | `Adpcm_ima_ws
  301. | `Adpcm_ima_smjpeg
  302. | `Adpcm_ms
  303. | `Adpcm_4xm
  304. | `Adpcm_xa
  305. | `Adpcm_adx
  306. | `Adpcm_ea
  307. | `Adpcm_g726
  308. | `Adpcm_ct
  309. | `Adpcm_swf
  310. | `Adpcm_yamaha
  311. | `Adpcm_sbpro_4
  312. | `Adpcm_sbpro_3
  313. | `Adpcm_sbpro_2
  314. | `Adpcm_thp
  315. | `Adpcm_ima_amv
  316. | `Adpcm_ea_r1
  317. | `Adpcm_ea_r3
  318. | `Adpcm_ea_r2
  319. | `Adpcm_ima_ea_sead
  320. | `Adpcm_ima_ea_eacs
  321. | `Adpcm_ea_xas
  322. | `Adpcm_ea_maxis_xa
  323. | `Adpcm_ima_iss
  324. | `Adpcm_g722
  325. | `Adpcm_ima_apc
  326. | `Adpcm_vima
  327. | `Adpcm_afc
  328. | `Adpcm_ima_oki
  329. | `Adpcm_dtk
  330. | `Adpcm_ima_rad
  331. | `Adpcm_g726le
  332. | `Adpcm_thp_le
  333. | `Adpcm_psx
  334. | `Adpcm_aica
  335. | `Adpcm_ima_dat4
  336. | `Adpcm_mtaf
  337. | `Adpcm_agm
  338. | `Adpcm_argo
  339. | `Adpcm_ima_ssi
  340. | `Adpcm_zork
  341. | `Adpcm_ima_apm
  342. | `Adpcm_ima_alp
  343. | `Adpcm_ima_mtf
  344. | `Adpcm_ima_cunning
  345. | `Adpcm_ima_moflex
  346. | `Amr_nb
  347. | `Amr_wb
  348. | `Ra_144
  349. | `Ra_288
  350. | `Roq_dpcm
  351. | `Interplay_dpcm
  352. | `Xan_dpcm
  353. | `Sol_dpcm
  354. | `Sdx2_dpcm
  355. | `Gremlin_dpcm
  356. | `Derf_dpcm
  357. | `Mp2
  358. | `Mp3
  359. | `Aac
  360. | `Ac3
  361. | `Dts
  362. | `Vorbis
  363. | `Dvaudio
  364. | `Wmav1
  365. | `Wmav2
  366. | `Mace3
  367. | `Mace6
  368. | `Vmdaudio
  369. | `Flac
  370. | `Mp3adu
  371. | `Mp3on4
  372. | `Shorten
  373. | `Alac
  374. | `Westwood_snd1
  375. | `Gsm
  376. | `Qdm2
  377. | `Cook
  378. | `Truespeech
  379. | `Tta
  380. | `Smackaudio
  381. | `Qcelp
  382. | `Wavpack
  383. | `Dsicinaudio
  384. | `Imc
  385. | `Musepack7
  386. | `Mlp
  387. | `Gsm_ms
  388. | `Atrac3
  389. | `Ape
  390. | `Nellymoser
  391. | `Musepack8
  392. | `Speex
  393. | `Wmavoice
  394. | `Wmapro
  395. | `Wmalossless
  396. | `Atrac3p
  397. | `Eac3
  398. | `Sipr
  399. | `Mp1
  400. | `Twinvq
  401. | `Truehd
  402. | `Mp4als
  403. | `Atrac1
  404. | `Binkaudio_rdft
  405. | `Binkaudio_dct
  406. | `Aac_latm
  407. | `Qdmc
  408. | `Celt
  409. | `G723_1
  410. | `G729
  411. | `_8svx_exp
  412. | `_8svx_fib
  413. | `Bmv_audio
  414. | `Ralf
  415. | `Iac
  416. | `Ilbc
  417. | `Opus
  418. | `Comfort_noise
  419. | `Tak
  420. | `Metasound
  421. | `Paf_audio
  422. | `On2avc
  423. | `Dss_sp
  424. | `Codec2
  425. | `Ffwavesynth
  426. | `Sonic
  427. | `Sonic_ls
  428. | `Evrc
  429. | `Smv
  430. | `Dsd_lsbf
  431. | `Dsd_msbf
  432. | `Dsd_lsbf_planar
  433. | `Dsd_msbf_planar
  434. | `_4gv
  435. | `Interplay_acm
  436. | `Xma1
  437. | `Xma2
  438. | `Dst
  439. | `Atrac3al
  440. | `Atrac3pal
  441. | `Dolby_e
  442. | `Aptx
  443. | `Aptx_hd
  444. | `Sbc
  445. | `Atrac9
  446. | `Hcom
  447. | `Acelp_kelvin
  448. | `Mpegh_3d_audio
  449. | `Siren
  450. | `Hca
  451. | `Fastaudio
  452. | `First_subtitle
  453. | `Dvd_subtitle
  454. | `Dvb_subtitle
  455. | `Text
  456. | `Xsub
  457. | `Ssa
  458. | `Mov_text
  459. | `Hdmv_pgs_subtitle
  460. | `Dvb_teletext
  461. | `Srt
  462. | `Microdvd
  463. | `Eia_608
  464. | `Jacosub
  465. | `Sami
  466. | `Realtext
  467. | `Stl
  468. | `Subviewer1
  469. | `Subviewer
  470. | `Subrip
  471. | `Webvtt
  472. | `Mpl2
  473. | `Vplayer
  474. | `Pjs
  475. | `Ass
  476. | `Hdmv_text_subtitle
  477. | `Ttml
  478. | `Arib_caption
  479. | `First_unknown
  480. | `Ttf
  481. | `Scte_35
  482. | `Epg
  483. | `Bintext
  484. | `Xbin
  485. | `Idf
  486. | `Otf
  487. | `Smpte_klv
  488. | `Dvd_nav
  489. | `Timed_id3
  490. | `Bin_data
  491. | `Probe
  492. | `Mpeg2ts
  493. | `Mpeg4systems
  494. | `Ffmetadata
  495. | `Wrapped_avframe
]
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.

val flush_encoder : 'media encoder -> ('media Packet.t -> unit) -> unit

Avcodec.flush_encoder encoder applies function f to the encoded packets from the buffered frames in the encoder.

Raise Error if the encoding failed.