1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
ocaml-ffmpeg
============



ocaml-ffmpeg is an OCaml interface for the [FFmpeg](http://ffmpeg.org/) Multimedia framework.
Currently, it requires FFmpeg 7.0 or later to compile.
The modules currently available are :
`Avutil` : base module containing the share types and utilities
`Avcodec` : the module containing decoders and encoders for audio, video and subtitle codecs.
`Av` : the module containing demuxers and muxers for reading and writing multimedia container formats.
`Avdevice` : the module containing input and output devices for grabbing from and rendering to many common multimedia input/output software frameworks.
`Avfilter` : the module containing audio and video filters.
`Swresample` : the module performing audio resampling, rematrixing and sample format conversion operations.
`Swscale` : the module performing image scaling and color space/pixel format conversion operations.
Please read the COPYING file before using this software.
Documentation:
=============
The [API documentation is available here](http://www.liquidsoap.info/ocaml-ffmpeg/).
Prerequisites:
==============
- ocaml
- FFmpeg
- dune
- findlib
See [dune-project](dune-project) file for versions.
Installation:
=============
The preferred installation method is via [opam](http://opam.ocaml.org/):
```
opam install ffmpeg
```
This will install the latest release of all ffmpeg-related modules. You can also
install individual modules, for instance:
```
opam install ffmpeg-avcodec ffmpeg-avfilter
```
If you wish to install the latest code from this repository, you can do:
```
opam install .
```
From within this repository.
Compilation:
============
```
dune build
```
Examples:
=============
The [audio_decoding](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/audio_decoding.ml) example shows how to read frames from an audio file and convert them into bytes.
The [audio_device](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/audio_device.ml) example shows how to read 500 audio frames from an input audio device or an URL and write them into an output audio device or a file.
The [decode_audio](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/decode_audio.ml) example shows how to parse packets from a mapped file, decode them and write the resulting frames into a file.
The [demuxing_decoding](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/demuxing_decoding.ml) example shows how to demuxing and decoding audio, video and subtitle frames from a file, converts them into bytes and write them in raw files.
The [encode_audio](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/encode_audio.ml) example shows how to convert a float array into stereo frames and encode them into packets.
The [encode_video](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/encode_video.ml) example shows how to create video frames and write them encoded into a file.
The [encoding](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/encoding.ml) example shows how to create a multimedia file with audio and video streams.
The [player](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/player.ml) example shows how to read a multimedia file and write audio and video frames to output devices.
The [remuxing](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/remuxing.ml) example shows how to remuxing multimedia file packets without decoding them.
The [transcode_aac](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/transcode_aac.ml) example shows how to transcode an audio file into an AAC audio file.
The [transcoding](https://github.com/savonet/ocaml-ffmpeg/blob/master/examples/transcoding.ml) example shows how to transcode audio streams into the AAC codec, video streams into the H264 codec and write them to an output file.
Author:
=======
This author of this software may be contacted by electronic mail
at the following address: savonet-users@lists.sourceforge.net.
|