{"id":32215574,"url":"https://github.com/clipland/animated-jpeg","last_synced_at":"2025-10-22T07:48:51.206Z","repository":{"id":28993784,"uuid":"32520585","full_name":"clipland/animated-jpeg","owner":"clipland","description":"Proposed JPEG/JFIF APP0 marker application extension for playback control of concatenated JPEGs, as stand-alone animation stream or Motion-JPEG","archived":false,"fork":false,"pushed_at":"2019-06-19T20:22:16.000Z","size":71,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-22T07:48:38.974Z","etag":null,"topics":["animated-gif","animated-jpeg-files","animation","jfif","jpeg","mjpeg","rfc"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clipland.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-19T12:43:16.000Z","updated_at":"2025-03-31T12:54:21.000Z","dependencies_parsed_at":"2022-08-02T17:15:51.248Z","dependency_job_id":null,"html_url":"https://github.com/clipland/animated-jpeg","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/clipland/animated-jpeg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clipland%2Fanimated-jpeg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clipland%2Fanimated-jpeg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clipland%2Fanimated-jpeg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clipland%2Fanimated-jpeg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clipland","download_url":"https://codeload.github.com/clipland/animated-jpeg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clipland%2Fanimated-jpeg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280402181,"owners_count":26324587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-22T02:00:06.515Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["animated-gif","animated-jpeg-files","animation","jfif","jpeg","mjpeg","rfc"],"created_at":"2025-10-22T07:48:47.900Z","updated_at":"2025-10-22T07:48:51.200Z","avatar_url":"https://github.com/clipland.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"Animated JPEG\n=============\n\nProposed JPEG/JFIF APP0 marker application extension for playback control of\nconcatenated JPEGs as stand-alone animation stream or Motion-JPEG.\n\n## DESCRIPTION\n\nThis repository provides a reference implementation of the proposed _Animated\nJPEG_ standard through a collection of routines and helper scripts in Perl.\nBundled scripts illustrate how to form a single \"animated jpeg file\" out of a\nnumber of single images, and how to revert this non-destructive process, by\nallowing a user to extract single images from an \"animated jpeg file\" and\nstore these frames as individual files again.\n\nAn _Animated JPEG file_ is a stream of concatenated individual JPEG files, then\nrepresenting a frame within the animation. This is similar to the non-standard\nMotion-JPEG (MJPEG) format, but with additional metadata to control the\nanimation, stored along with the first frame, or each subsequent, added as APP0\nmarker application data segment.\n\nWhy?\n\nAnimated JPEG files are more efficient than animated GIFs. That said, the file\nformat described here is simply a concatenation of JPEGs, so there is no\ninter-frame compression, resulting in lower overall compression in comparison\nwith modern video formats.\n\nAnimated JPEG files are very suitable for flip-book like short animations, with\nlow frame-rates. Each frame can have it's own display duration - uncommon or not\npossible with most video containers.\n\nAs adding and removing the control APP0 tag to a JPEG does not trigger a\nrecompression of the actual image data payload, forming an animation, or\nbreaking it into individual files again, is a lossless (no new \"generation\")\nJPEG/JFIF transform and non-destructive.\n\nMJPEG commonly has no \"playback control\" metadata embedded. Frame rate is either\nset via HTTP header (not available when the stream is not served by a web\nserver) or assumed by the player application (to be a common video frame-rate\nof about 25fps; try mplayer, avplay, vlc). AJPEG offers a facility to set fps,\nand current specs define a default of 10 frames-per-second.\n\n## SPECIFICATIONS\n\nPlease refer to the [Official Specifications](SPECIFICATIONS.md) for details.\n\n## REFERENCE IMPLEMENTATION\n\nBundled with this distribution is a reference implementation, written in Perl,\n[Image::Animated::JPEG](http://search.cpan.org/perldoc?Image::Animated::JPEG).\n\nAs of version 0.02, the distribution comes with an experimental/wip JavaScript\nimplementation to parse and display AJPEG animations in a browser.\n\n### INSTALLATION\n\nTo install this implementation and accompanying scripts, do this on\ncommand-line:\n\n    wget https://github.com/clipland/animated-jpeg/archive/master.tar.gz\n    tar xvf master.tar.gz\n    cd animated-jpeg-master\n    perl Makefile.PL\n    make\n    make test\n    sudo make install\n\nor, via CPAN:\n\n    sudo cpan -i CLIPLAND/Image-Animated-JPEG-0.01.tar.gz\n\nIf you'd like to set a MIME-Type for AJPEGs on your system and want to play\nsuch files with bundled playajpeg, then there's a .desktop and a .xml file\nin the /debian directory of this release. For a local install, on Ubuntu/Linux\ndo this:\n\n    cp ./debian/image-ajpeg.xml ~/.local/share/mime/packages/image-ajpeg.xml\n    cp ./debian/playajpeg.desktop ~/.local/share/applications/playajpeg.desktop\n    update-mime-database ~/.local/share/mime\n    update-desktop-database ~/.local/share/applications    \n\n### CAVEATS\n\nThis is alpha quality software. Do not test it on important data or files.\n\n## SEE ALSO\n\nRelated technology:\n\n* [Motion-JPEG](http://en.wikipedia.org/wiki/Motion_JPEG)\n* [Animated GIF](http://en.wikipedia.org/wiki/GIF#Animated_GIF)\n* [Animated PNG, APNG specs](https://wiki.mozilla.org/APNG_Specification#Structure)\n* [Multiple-image Network Graphics, MNG](http://en.wikipedia.org/wiki/Multiple-image_Network_Graphics)\n* [WebP animation](http://en.wikipedia.org/wiki/WebP)\n* AVI container with JPEG codec\n\n## AUTHOR\n\nClipland GmbH, [clipland.com](http://www.clipland.com/)\n\n## COPYRIGHT \u0026 LICENSE\n\nCopyright 2013-2019 Clipland GmbH. All rights reserved.\n\nThis library is free software, dual-licensed under [GPLv3](http://www.gnu.org/licenses/gpl)\nand [Perl Artistic 2](http://opensource.org/licenses/Artistic-2.0).\nYou can redistribute it and/or modify it under the same terms as Perl itself.\n\nAJPEG specifications are licensed to the public under the GNU Free Documentation\nLicense (GNU FDL or GFDL) Version 1.3.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclipland%2Fanimated-jpeg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclipland%2Fanimated-jpeg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclipland%2Fanimated-jpeg/lists"}