Safe Haskell | None |
---|---|
Language | Haskell2010 |
Interface to initialize FFmpeg, decode video files, encode video files, and convert decoded image frames to JuicyPixels images.
Synopsis
- initFFmpeg :: IO ()
- setLogLevel :: LogLevel -> IO ()
- imageReader :: JuicyPixelFormat p => InputSource -> IO (IO (Maybe (Image p)), IO ())
- imageReaderTime :: JuicyPixelFormat p => InputSource -> IO (IO (Maybe (Image p, Double)), IO ())
- imageReaderT :: forall m p. (Functor m, MonadIO m, MonadError String m, JuicyPixelFormat p) => InputSource -> m (IO (Maybe (Image p)), IO ())
- imageReaderTimeT :: forall m p. (Functor m, MonadIO m, MonadError String m, JuicyPixelFormat p) => InputSource -> m (IO (Maybe (Image p, Double)), IO ())
- data EncodingParams = EncodingParams {}
- defaultParams :: CInt -> CInt -> EncodingParams
- imageWriter :: forall p. JuicyPixelFormat p => EncodingParams -> FilePath -> IO (Maybe (Image p) -> IO ())
- module Codec.FFmpeg.Types
- module Codec.FFmpeg.Enums
Initialization
initFFmpeg :: IO () Source #
Initialize FFmpeg by registering all known codecs. This must be
called before using other FFmpeg functions. The debug level is
initially set to quiet
. If you would like the standard ffmpeg
debug level, call setLogLevel avLogInfo
after initFFmpeg
.
setLogLevel :: LogLevel -> IO () Source #
Log output is sent to stderr.
Decoding
imageReader :: JuicyPixelFormat p => InputSource -> IO (IO (Maybe (Image p)), IO ()) Source #
Read frames from a video stream. Errors are thrown as
IOException
s.
imageReaderTime :: JuicyPixelFormat p => InputSource -> IO (IO (Maybe (Image p, Double)), IO ()) Source #
Read time stamped frames from a video stream. Time is given in
seconds from the start of the stream. Errors are thrown as
IOException
s.
imageReaderT :: forall m p. (Functor m, MonadIO m, MonadError String m, JuicyPixelFormat p) => InputSource -> m (IO (Maybe (Image p)), IO ()) Source #
Read frames from a video stream.
imageReaderTimeT :: forall m p. (Functor m, MonadIO m, MonadError String m, JuicyPixelFormat p) => InputSource -> m (IO (Maybe (Image p, Double)), IO ()) Source #
Read time stamped frames from a video stream. Time is given in seconds from the start of the stream.
Encoding
data EncodingParams Source #
Minimal parameters describing the desired video output.
EncodingParams | |
|
defaultParams :: CInt -> CInt -> EncodingParams Source #
Use default parameters for a video of the given width and height. The output format is determined by the output file name.
imageWriter :: forall p. JuicyPixelFormat p => EncodingParams -> FilePath -> IO (Maybe (Image p) -> IO ()) Source #
Open a target file for writing a video stream. When the returned
function is applied to Nothing
, the output stream is closed. Note
that Nothing
must be provided when finishing in order to
properly terminate video encoding.
Support for source images that are of a different size to the
output resolution is limited to non-palettized destination formats
(i.e. those that are handled by libswscaler
). Practically, this
means that animated gif output is only supported if the source
images are of the target resolution.
Types and Enums
module Codec.FFmpeg.Types
module Codec.FFmpeg.Enums