- Audio support
- New demo for extracting audio from a video to a mp3
- New demo with both video and audio using sinusoidal audio waves
- Support webcams on Linux
- Fix a video playback framerate issue in the
vplay
demo (@gelisam)
- Better support for ffmpeg-3.4.2 API changes
- Bump base upper bound
- Rewritten Travis-CI support for GHC 8.02, 8.2.2, and 8.4.2
- Refactoring to better interoperate with SDL2
- SDL2 video player demo executable
[Thanks to Vladimir Pankov!]
- Use
Control.Monad.Except
instead of the deprecatedControl.Monad.Error
(Issue reported by Alexander / @AleXoundOS)
- Query stream duration (Matthias Treydte)
- Initial support for verbosity control; defaults to quiet
- Can be changed with the new
setLogLevel
function
- Can be changed with the new
- Fix encoder bug that created a single black frame at the start of every video (Jonathan Daugherty)
-
Add support for camera input (Thomas M. DuBuisson)
- Try it: build the demo executable (
cabal configure -fBuildDemo
) and runcabal run demo -- cam
to record 10s of video from a connected camera to an output filecamera.mov
.
- Try it: build the demo executable (
-
Extract frame time stamps from the video stream rather than the codec context (hat tip to Jaro Reinders)
- Added probe features
- Update raster demo to use new JuicyPixels-3.2 API
-
Update to transformers-0.4.1 and mtl-2.2.1
- Changed decode-related types to accomodate deprecation of the
Error
class. This means that if you want to initialize decoders in your own transformer stack that has aMonadError
instance, you will need to use the variants with names suffixed by a "T" (for transformer).
- Changed decode-related types to accomodate deprecation of the
-
Update to ffmpeg 2.3
-
Address deprecation warning
Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
-
Address "non-strictly-monotonic PTS" warning
-
-
Rasterific bump
- Rasterific exports its own linear algebra types as of 0.3
-
Bumped transformers dependency
Note: The use of mtl still triggers deprecation warnings from transformers.
-
Fixed bug with changing source pixel format from RGB during encoding.
-
Added BGRA pixel format
- Simplified top-level API to focus on JuicyPixels-based interface
- Cleaned the API of detritus. Use the image* functions.
-
Juiced the Encode and Decode APIs.
Using
imageWriter
andimageReader
provides a degree of pixel format polymorphism based on JuicyPixels pixel types.
-
Fixed corrupted output of palettized animated GIFs.
-
Added palettization options
-
Using
avPixFmtRgb8
results in a small file -
Using the default pixel format (
avPixFmtPal8
) results in a good-looking, fairly large file thanks to JuicyPixels'spalettize
function. -
Setting the
epPreset
field of theEncodingParams
value passed toframeWriter
to"dither"
results in an even prettier, even larger GIF file (again, thanks to JuicyPixels'spalettize
function). -
See the
demo/Raster.hs
for examples.
-
-
Automatically palettize RGB24 to RGB8 for GIF output.
-
Add a Rasterific demo program that records an animation.
- Support for GIF encoding (and other palletized formats).
-
Separate
Scaler
module and friendlylibswscaler
interface. -
Generalized
toJuicy
conversion. -
Added demo program.
- Basic h264 encoding and decoding.