License | MIT |
---|---|
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Experimental Video processing DSL for Polysemy.
Synopsis
- data Time = Time {}
- data Range = Range {}
- data ClipProcess m a where
- ExtractAudio :: Path Rel File -> [(Range, Path Rel File)] -> ClipProcess m ()
- ExtractClips :: Path Rel File -> [(Range, Path Rel File)] -> ClipProcess m ()
- ExtractFrames :: Path Rel File -> [(Time, Path Rel File)] -> ClipProcess m ()
- extractFrames :: forall r. MemberWithError ClipProcess r => Path Rel File -> [(Time, Path Rel File)] -> Sem r ()
- extractClips :: forall r. MemberWithError ClipProcess r => Path Rel File -> [(Range, Path Rel File)] -> Sem r ()
- extractAudio :: forall r. MemberWithError ClipProcess r => Path Rel File -> [(Range, Path Rel File)] -> Sem r ()
- timeFF :: Time -> Text
- seekFF :: Time -> [Text]
- rangeFF :: Range -> Path Rel File -> [Text]
- frameFF :: Time -> Path Rel File -> [Text]
- inputFF :: Path Rel File -> [Text]
- runffmpeg :: MonadIO m => [Text] -> m ()
- mktreeFP :: MonadIO m => Path b Dir -> m ()
- interpretFFMpegCli :: Member (Embed IO) effs => Sem (ClipProcess ': effs) a -> Sem effs a
- interpretFFMpegNoop :: Member (Embed IO) effs => Sem (ClipProcess ': effs) a -> Sem effs a
Documentation
data ClipProcess m a where Source #
ExtractAudio :: Path Rel File -> [(Range, Path Rel File)] -> ClipProcess m () | |
ExtractClips :: Path Rel File -> [(Range, Path Rel File)] -> ClipProcess m () | |
ExtractFrames :: Path Rel File -> [(Time, Path Rel File)] -> ClipProcess m () |
extractFrames :: forall r. MemberWithError ClipProcess r => Path Rel File -> [(Time, Path Rel File)] -> Sem r () Source #
extractClips :: forall r. MemberWithError ClipProcess r => Path Rel File -> [(Range, Path Rel File)] -> Sem r () Source #
extractAudio :: forall r. MemberWithError ClipProcess r => Path Rel File -> [(Range, Path Rel File)] -> Sem r () Source #
interpretFFMpegCli :: Member (Embed IO) effs => Sem (ClipProcess ': effs) a -> Sem effs a Source #
Interpret ClipProcess
by running it against ffmpeg on the command line.
interpretFFMpegNoop :: Member (Embed IO) effs => Sem (ClipProcess ': effs) a -> Sem effs a Source #
Interpret ClipProcess
by printing out the command it would have run to the terminal.