Как создать видео из изображений с именем файла гггг-ММ-дд:ЧЧ:мм:сс

Как создать видео из изображений с именем файла гггг-ММ-дд:ЧЧ:мм:сс

У меня много изображений (>11.000) и я хочу создать видео с avconv как таймлапсы. С ffmpeg я сделал трюк с:

ffmpeg -r 25 -i "/mnt/stora/dahopi/Pictures/Gartencam/%*.jpg" \
       -vf scale=800:600 -c:v mpeg4 -vtag xvid -qscale:v \
       10 gartencam.avi

Но с avconv это не работает. Я думаю, что проблема в селекторе файлов %*.jpg, и мне интересно, есть ли у меня шанс создать видео без изменения имени файла.

Если нет — знаете ли вы другой инструмент, который поможет вам добиться этого?

решение1

Боюсь, вы правы, что ошибка связана с селектором файлов. Цитата из руководства:

      For creating a video from many images:

              avconv -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi

      The syntax "foo-%03d.jpeg" specifies to use a decimal number composed of
      three digits padded with zeroes to express the sequence number. It is the
      same syntax supported by the C printf function, but only formats accepting a
      normal integer are suitable.

Если хотите, можете начать с целого числа больше 0:

  -start_number start
  Specify the first number in the sequence

На самом деле вам не нужно переименовывать: вы можете создать символические ссылки с помощью lnкоманды, которые займут совсем немного места на вашем диске.

Я советую вам сделать резервную копию ваших фотографий, прежде чем пробовать скрипты.

Вы можете попробовать использовать этот bash-скрипт:

#! /bin/bash
INPUTDIR="$1"
OUPUTDIR="$2"

SORTEDLIST="$(cd "$INPUTDIR" && ls -1 | sort -n)"

COUNT="$(echo -e "$SORTEDLIST"|wc -l)"
echo "Found $COUNT files"

ZEROES="$(echo -e "$COUNT"|wc -c)" # (will count \n)
echo "Using $ZEROES characters to display integers"

COUNTER="0"
for file in $SORTEDLIST; do
    ID="$(printf "%0${ZEROES}d" "$COUNTER")"

    echo "ln -s $INPUTDIR/$file $OUPUTDIR/$ID.jpg"
    ln -s "$INPUTDIR/$file" "$OUPUTDIR/$ID.jpg"

    COUNTER=$((COUNTER + 1))
done

Этот скрипт предполагает, что все ваши изображения находятся в каталоге, содержащем только те изображения, которые вы хотите включить в свое видео. Чтобы использовать его:

  • создайте выходной каталог, который будет содержать ваши ссылки:mkdir output
  • выполнить это./script.sh nameofthefoldercontainingyourimages output

Связанный контент