INT 21h

Hi, I am Vladimir Smagin, SysAdmin and Kaptain. Telegram Email / GIT / RSS / GPG

Bash + PHP + imagemagick + ffmpeg: карта звездного неба

№ 9074 В разделе Programming от July 30th, 2018,
В подшивках: ,

Захотел я сделать красивый видос как по небу двигаются звезды. Захотел и сделал. Карту взял отсюда

Скрипт запуска


rm -f *.jpg *.gif *.mp4

php -f get-images.php $(date +%d) $(date +%m) $(date +%Y)

for gif in $(ls -w1 *.gif)
    echo "Converting $gif"
    convert $gif -resize 2560x1440 -gravity center -extent 2560x1440 -fill white -gravity South-West -pointsize 45 \
      -annotate +50+35 "$(date +%d-%m-%Y) ${gif%.*} (UTC)" -gravity South-East -pointsize 45 -annotate +50+35 \
      "Звездная карта Томска\n" $(printf '%04d' $COUNTER).jpg

ffmpeg -framerate 12 -i %04d.jpg Stars-$(date +%d-%m-%Y).mp4

rm -f *.gif

Скрипт получения файлов

Чтобы понервировать тех, кто не любит PHP сделал скрипт на PHP. Ну чисто по приколу, он же у меня стоит, почему бы и нет? Зря место чтоли занимает 😀 Изысканные ценители могут с легкостью перенести все это на bash.


$dateD = $argv[1];
$dateM = $argv[2];
$dateY = $argv[3];

function getHourPart($minute) {
    $t = mktime(0,$minute,0) % 3600;
    return $t / 3600;

$url_o = "

for($hour = 0; $hour<=23; $hour++) {
    for($minute = 0; $minute<=59; $minute++) {
        $hPart = $hour + getHourPart($minute);
        $timestamp = sprintf('%02d',$hour).':'.sprintf('%02d',$minute);
        echo $timestamp."\n";
        $url = str_replace('%HPART%',$hPart, $url_o);
        $url = str_replace('%DD%',$dateD, $url);
        $url = str_replace('%DM%',$dateM, $url);
        $url = str_replace('%DY%',$dateY, $url);
        file_put_contents(''.$timestamp.'.gif', file_get_contents($url));

Репозиторий с кодом

Нет комментариев »

Leave a Reply

Your email address will not be published. Required fields are marked *


Облачная платформа

Fortune cookie: Whatever you say about pornography, sex is here to stay.