├── logs └── .gitkeep ├── video └── .gitkeep ├── .gitignore ├── images └── logo.png ├── .github └── CODE_OF_CONDUCT.md ├── captions.txt ├── bin ├── build_1 ├── build_9 ├── build_10 ├── build_2 ├── build_3 ├── build_4 ├── build_5 ├── build_6 ├── build_7 ├── build_8 └── build ├── README.md └── LICENSE /logs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /video/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /php-src 2 | /video/* 3 | !video/.gitkeep 4 | /logs/* 5 | !/logs/.gitkeep 6 | -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phpearth/php-video/HEAD/images/logo.png -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of conduct 2 | 3 | This project is part of the [PHP.earth](https://php.earth) group which follows a 4 | [code of conduct](https://conduct.php.earth) to guarantee a welcoming, safe, 5 | inclusive, and harassment-free environment for anyone. 6 | -------------------------------------------------------------------------------- /captions.txt: -------------------------------------------------------------------------------- 1 | 802655999 |PHP Tools released - 8 June 1995 2 | 878428799 |PHP 2.0 released - 1 November 1997 3 | 897177599 |PHP 3.0 released - 6 june 1998 4 | 959039999 |PHP 4.0 released - 22 May 2000 5 | 1089763199|PHP 5.0 released - 13 July 2004 6 | 1132876799|PHP 5.1 released - 24 November 2005 7 | 1162511999|PHP 5.2 released - 2 November 2006 8 | 1246406399|PHP 5.3 released - 30 June 2009 9 | 1330646399|PHP 5.4 released - 1 March 2012 10 | 1371772799|PHP 5.5 released - 20 June 2013 11 | 1409270399|PHP 5.6 released - 28 August 2014 12 | -------------------------------------------------------------------------------- /bin/build_1: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.1 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --stop-date '1997-11-02' \ 18 | -o ./video/php_1.ppm \ 19 | ./logs/svn-log.txt 20 | 21 | ffmpeg \ 22 | -y \ 23 | -r 60 \ 24 | -f image2pipe \ 25 | -vcodec ppm \ 26 | -i ./video/php_1.ppm \ 27 | -vcodec libx264 \ 28 | -preset ultrafast \ 29 | -pix_fmt yuv420p \ 30 | -crf 1 \ 31 | -threads 0 \ 32 | -bf 0 \ 33 | ./video/php_1.mp4 34 | -------------------------------------------------------------------------------- /bin/build_9: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide dirnames,filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.1 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --start-date '2014-08-29' \ 18 | --stop-date '2015-12-03' \ 19 | -o ./video/php_9.ppm \ 20 | ./php-src 21 | 22 | ffmpeg \ 23 | -y \ 24 | -r 60 \ 25 | -f image2pipe \ 26 | -vcodec ppm \ 27 | -i ./video/php_9.ppm \ 28 | -vcodec libx264 \ 29 | -preset ultrafast \ 30 | -pix_fmt yuv420p \ 31 | -crf 1 \ 32 | -threads 0 \ 33 | -bf 0 \ 34 | ./video/php_9.mp4 35 | -------------------------------------------------------------------------------- /bin/build_10: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide dirnames,filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.01 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --start-date '2015-12-03' \ 18 | --stop-date '2016-12-04' \ 19 | -o ./video/php_10.ppm \ 20 | ./php-src 21 | 22 | ffmpeg \ 23 | -y \ 24 | -r 60 \ 25 | -f image2pipe \ 26 | -vcodec ppm \ 27 | -i ./video/php_10.ppm \ 28 | -vcodec libx264 \ 29 | -preset ultrafast \ 30 | -pix_fmt yuv420p \ 31 | -crf 1 \ 32 | -threads 0 \ 33 | -bf 0 \ 34 | ./video/php_10.mp4 35 | -------------------------------------------------------------------------------- /bin/build_2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.1 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --start-date '1998-05-01' \ 18 | --stop-date '1998-06-07' \ 19 | -o ./video/php_2.ppm \ 20 | ./logs/svn-log.txt 21 | 22 | ffmpeg \ 23 | -y \ 24 | -r 60 \ 25 | -f image2pipe \ 26 | -vcodec ppm \ 27 | -i ./video/php_2.ppm \ 28 | -vcodec libx264 \ 29 | -preset ultrafast \ 30 | -pix_fmt yuv420p \ 31 | -crf 1 \ 32 | -threads 0 \ 33 | -bf 0 \ 34 | ./video/php_2.mp4 35 | -------------------------------------------------------------------------------- /bin/build_3: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.1 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --start-date '2000-04-20' \ 18 | --stop-date '2000-05-23' \ 19 | -o ./video/php_3.ppm \ 20 | ./logs/svn-log.txt 21 | 22 | ffmpeg \ 23 | -y \ 24 | -r 60 \ 25 | -f image2pipe \ 26 | -vcodec ppm \ 27 | -i ./video/php_3.ppm \ 28 | -vcodec libx264 \ 29 | -preset ultrafast \ 30 | -pix_fmt yuv420p \ 31 | -crf 1 \ 32 | -threads 0 \ 33 | -bf 0 \ 34 | ./video/php_3.mp4 35 | -------------------------------------------------------------------------------- /bin/build_4: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide dirnames,filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.1 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --start-date '2004-06-01' \ 18 | --stop-date '2004-07-14' \ 19 | -o ./video/php_4.ppm \ 20 | ./logs/svn-log.txt 21 | 22 | ffmpeg \ 23 | -y \ 24 | -r 60 \ 25 | -f image2pipe \ 26 | -vcodec ppm \ 27 | -i ./video/php_4.ppm \ 28 | -vcodec libx264 \ 29 | -preset ultrafast \ 30 | -pix_fmt yuv420p \ 31 | -crf 1 \ 32 | -threads 0 \ 33 | -bf 0 \ 34 | ./video/php_4.mp4 35 | -------------------------------------------------------------------------------- /bin/build_5: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide dirnames,filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.1 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --start-date '2009-06-01' \ 18 | --stop-date '2009-07-01' \ 19 | -o ./video/php_5.ppm \ 20 | ./logs/svn-log.txt 21 | 22 | ffmpeg \ 23 | -y \ 24 | -r 60 \ 25 | -f image2pipe \ 26 | -vcodec ppm \ 27 | -i ./video/php_5.ppm \ 28 | -vcodec libx264 \ 29 | -preset ultrafast \ 30 | -pix_fmt yuv420p \ 31 | -crf 1 \ 32 | -threads 0 \ 33 | -bf 0 \ 34 | ./video/php_5.mp4 35 | -------------------------------------------------------------------------------- /bin/build_6: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide dirnames,filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.1 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --start-date '2012-02-10' \ 18 | --stop-date '2012-03-02' \ 19 | -o ./video/php_6.ppm \ 20 | ./logs/svn-log.txt 21 | 22 | ffmpeg \ 23 | -y \ 24 | -r 60 \ 25 | -f image2pipe \ 26 | -vcodec ppm \ 27 | -i ./video/php_6.ppm \ 28 | -vcodec libx264 \ 29 | -preset ultrafast \ 30 | -pix_fmt yuv420p \ 31 | -crf 1 \ 32 | -threads 0 \ 33 | -bf 0 \ 34 | ./video/php_6.mp4 35 | -------------------------------------------------------------------------------- /bin/build_7: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide dirnames,filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.1 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --start-date '2013-05-25' \ 18 | --stop-date '2013-06-21' \ 19 | -o ./video/php_7.ppm \ 20 | ./logs/svn-log.txt 21 | 22 | ffmpeg \ 23 | -y \ 24 | -r 60 \ 25 | -f image2pipe \ 26 | -vcodec ppm \ 27 | -i ./video/php_7.ppm \ 28 | -vcodec libx264 \ 29 | -preset ultrafast \ 30 | -pix_fmt yuv420p \ 31 | -crf 1 \ 32 | -threads 0 \ 33 | -bf 0 \ 34 | ./video/php_7.mp4 35 | -------------------------------------------------------------------------------- /bin/build_8: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | gource \ 5 | --background 000000 \ 6 | --hide dirnames,filenames,mouse \ 7 | --date-format "%d %B %Y" \ 8 | --font-size 26 \ 9 | --seconds-per-day 0.1 \ 10 | -1920x1080 \ 11 | -e 0.02 \ 12 | --bloom-multiplier 1.0 \ 13 | --bloom-intensity 0.5 \ 14 | --highlight-all-users \ 15 | --auto-skip-seconds 0.5 \ 16 | --key \ 17 | --start-date '2014-07-25' \ 18 | --stop-date '2014-08-29' \ 19 | -o ./video/php_8.ppm \ 20 | ./logs/svn-log.txt 21 | 22 | ffmpeg \ 23 | -y \ 24 | -r 60 \ 25 | -f image2pipe \ 26 | -vcodec ppm \ 27 | -i ./video/php_8.ppm \ 28 | -vcodec libx264 \ 29 | -preset ultrafast \ 30 | -pix_fmt yuv420p \ 31 | -crf 1 \ 32 | -threads 0 \ 33 | -bf 0 \ 34 | ./video/php_8.mp4 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP Evolution video 2 | 3 | Files and settings to produce a PHP source code evolution from SVN and Git 4 | repositories using [Gource](http://gource.io/). 5 | 6 | ## Usage 7 | 8 | ```bash 9 | ./bin/build 10 | ``` 11 | 12 | ## Requirements 13 | 14 | * [Gource](http://gource.io/) 15 | * [ffmpeg](https://www.ffmpeg.org/) 16 | * [Git](http://git-scm.com/) 17 | 18 | ## Warning 19 | 20 | Final video was also edited with video editing software for better presentation. 21 | Build script can take a lot of time and computer resources to produce commit 22 | logs and final video. Final video can take several tens of Gigabytes on your disk. 23 | 24 | ## License and Credits 25 | 26 | Video is made for noncommercial learning purposes of Gource usage and PHP development 27 | evolution presentation. This repository is released under an [MIT License](LICENSE). 28 | PHP logo image is property of [PHP.net](http://php.net/copyright.php). 29 | 30 | [![PHP Development History Visualization](http://img.youtube.com/vi/SXkaP_r-c5k/0.jpg)](http://youtu.be/SXkaP_r-c5k) 31 | -------------------------------------------------------------------------------- /bin/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # build: build script for creating video from PHP Git sources and SVN repository 3 | 4 | git clone git://github.com/php/php-src.git 5 | 6 | gource \ 7 | --background 000000 \ 8 | --hide filenames,dirnames,mouse \ 9 | --logo ./images/logo.png \ 10 | --logo-offset 10x10 \ 11 | --title "20 years of PHP Development Visualization" \ 12 | --date-format "%d %B %Y" \ 13 | --font-size 26 \ 14 | --caption-file ./captions.txt \ 15 | --seconds-per-day 0.01 \ 16 | -1920x1080 \ 17 | -e 0.02 \ 18 | --bloom-multiplier 1.0 \ 19 | --bloom-intensity 0.5 \ 20 | --highlight-all-users \ 21 | --auto-skip-seconds 0.5 \ 22 | --key \ 23 | -o ./video/php.ppm \ 24 | ./php-src 25 | 26 | ffmpeg \ 27 | -y \ 28 | -r 60 \ 29 | -f image2pipe \ 30 | -vcodec ppm \ 31 | -i ./video/php.ppm \ 32 | -i ./music/music.mp3 \ 33 | -vcodec libx264 \ 34 | -preset ultrafast \ 35 | -pix_fmt yuv420p \ 36 | -crf 1 \ 37 | -threads 0 \ 38 | -bf 0 \ 39 | ./video/php.mp4 40 | 41 | 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016-present PHP.earth 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | --------------------------------------------------------------------------------