All Projects → clipland → Animated Jpeg

clipland / Animated Jpeg

Licence: other
Proposed JPEG/JFIF APP0 marker application extension for playback control of concatenated JPEGs, as stand-alone animation stream or Motion-JPEG

Programming Languages

perl
6916 projects

Projects that are alternatives of or similar to Animated Jpeg

uvc-streamer
MJPEG webcam network streamer for linux
Stars: ✭ 25 (+257.14%)
Mutual labels:  jpeg, mjpeg
Pi Camera Connect
Library to capture and stream Raspberry Pi camera data directly to NodeJS
Stars: ✭ 81 (+1057.14%)
Mutual labels:  jpeg, mjpeg
Ustreamer
µStreamer - Lightweight and fast MJPG-HTTP streamer
Stars: ✭ 533 (+7514.29%)
Mutual labels:  jpeg, mjpeg
Jpegrtspcamera
Sample RTSP server streaming MJPEG video from PC camera
Stars: ✭ 25 (+257.14%)
Mutual labels:  jpeg, mjpeg
Leanify
lightweight lossless file minifier/optimizer
Stars: ✭ 694 (+9814.29%)
Mutual labels:  jpeg
Lepton
Lepton is a tool and file format for losslessly compressing JPEGs by an average of 22%.
Stars: ✭ 4,918 (+70157.14%)
Mutual labels:  jpeg
Jpeg tutorial
跟我寫 JPEG 解碼器 (Write a JPEG decoder with me)
Stars: ✭ 537 (+7571.43%)
Mutual labels:  jpeg
Imagesharp
📷 A modern, cross-platform, 2D Graphics library for .NET
Stars: ✭ 5,186 (+73985.71%)
Mutual labels:  jpeg
Stegify
🔍 Go tool for LSB steganography, capable of hiding any file within an image.
Stars: ✭ 927 (+13142.86%)
Mutual labels:  jpeg
Flyimg
Dockerized PHP7 application runs as a Microservice to resize and crop images on the fly. Get optimised images with MozJPEG, WebP or PNG using ImageMagick. Includes face detection, cropping, face blurring, image rotation and many other options. Abstract storage based on FlySystem in order to store images on any provider (local, AWS S3...).
Stars: ✭ 762 (+10785.71%)
Mutual labels:  jpeg
Fo Dicom
Fellow Oak DICOM for .NET, .NET Core, Universal Windows, Android, iOS, Mono and Unity
Stars: ✭ 674 (+9528.57%)
Mutual labels:  jpeg
Sdwebimage
Asynchronous image downloader with cache support as a UIImageView category
Stars: ✭ 23,928 (+341728.57%)
Mutual labels:  jpeg
Nuxt Optimized Images
🌅🚀 Automatically optimizes images used in Nuxt.js projects (JPEG, PNG, SVG, WebP and GIF).
Stars: ✭ 717 (+10142.86%)
Mutual labels:  jpeg
Pixterm
Draw images in your ANSI terminal with true color
Stars: ✭ 782 (+11071.43%)
Mutual labels:  jpeg
Libvips
A fast image processing library with low memory needs.
Stars: ✭ 6,094 (+86957.14%)
Mutual labels:  jpeg
Metadata Extractor Dotnet
Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files
Stars: ✭ 518 (+7300%)
Mutual labels:  jpeg
Svgexport
SVG to PNG/JPEG command-line tool and Node.js module
Stars: ✭ 731 (+10342.86%)
Mutual labels:  jpeg
Optimizt
CLI image optimization tool
Stars: ✭ 594 (+8385.71%)
Mutual labels:  jpeg
Bbmetalimage
A high performance Swift library for GPU-accelerated image/video processing based on Metal.
Stars: ✭ 677 (+9571.43%)
Mutual labels:  jpeg
Cam2ip
Turn any webcam into an IP camera
Stars: ✭ 587 (+8285.71%)
Mutual labels:  mjpeg

Animated JPEG

Proposed JPEG/JFIF APP0 marker application extension for playback control of concatenated JPEGs as stand-alone animation stream or Motion-JPEG.

DESCRIPTION

This repository provides a reference implementation of the proposed Animated JPEG standard through a collection of routines and helper scripts in Perl. Bundled scripts illustrate how to form a single "animated jpeg file" out of a number of single images, and how to revert this non-destructive process, by allowing a user to extract single images from an "animated jpeg file" and store these frames as individual files again.

An Animated JPEG file is a stream of concatenated individual JPEG files, then representing a frame within the animation. This is similar to the non-standard Motion-JPEG (MJPEG) format, but with additional metadata to control the animation, stored along with the first frame, or each subsequent, added as APP0 marker application data segment.

Why?

Animated JPEG files are more efficient than animated GIFs. That said, the file format described here is simply a concatenation of JPEGs, so there is no inter-frame compression, resulting in lower overall compression in comparison with modern video formats.

Animated JPEG files are very suitable for flip-book like short animations, with low frame-rates. Each frame can have it's own display duration - uncommon or not possible with most video containers.

As adding and removing the control APP0 tag to a JPEG does not trigger a recompression of the actual image data payload, forming an animation, or breaking it into individual files again, is a lossless (no new "generation") JPEG/JFIF transform and non-destructive.

MJPEG commonly has no "playback control" metadata embedded. Frame rate is either set via HTTP header (not available when the stream is not served by a web server) or assumed by the player application (to be a common video frame-rate of about 25fps; try mplayer, avplay, vlc). AJPEG offers a facility to set fps, and current specs define a default of 10 frames-per-second.

SPECIFICATIONS

Please refer to the Official Specifications for details.

REFERENCE IMPLEMENTATION

Bundled with this distribution is a reference implementation, written in Perl, Image::Animated::JPEG.

As of version 0.02, the distribution comes with an experimental/wip JavaScript implementation to parse and display AJPEG animations in a browser.

INSTALLATION

To install this implementation and accompanying scripts, do this on command-line:

wget https://github.com/clipland/animated-jpeg/archive/master.tar.gz
tar xvf master.tar.gz
cd animated-jpeg-master
perl Makefile.PL
make
make test
sudo make install

or, via CPAN:

sudo cpan -i CLIPLAND/Image-Animated-JPEG-0.01.tar.gz

If you'd like to set a MIME-Type for AJPEGs on your system and want to play such files with bundled playajpeg, then there's a .desktop and a .xml file in the /debian directory of this release. For a local install, on Ubuntu/Linux do this:

cp ./debian/image-ajpeg.xml ~/.local/share/mime/packages/image-ajpeg.xml
cp ./debian/playajpeg.desktop ~/.local/share/applications/playajpeg.desktop
update-mime-database ~/.local/share/mime
update-desktop-database ~/.local/share/applications    

CAVEATS

This is alpha quality software. Do not test it on important data or files.

SEE ALSO

Related technology:

AUTHOR

Clipland GmbH, clipland.com

COPYRIGHT & LICENSE

Copyright 2013-2019 Clipland GmbH. All rights reserved.

This library is free software, dual-licensed under GPLv3 and Perl Artistic 2. You can redistribute it and/or modify it under the same terms as Perl itself.

AJPEG specifications are licensed to the public under the GNU Free Documentation License (GNU FDL or GFDL) Version 1.3.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].