![Como criar vídeo a partir de imagens com nome de arquivo yyyy-MM-dd:HH:mm:ss](https://rvso.com/image/885977/Como%20criar%20v%C3%ADdeo%20a%20partir%20de%20imagens%20com%20nome%20de%20arquivo%20yyyy-MM-dd%3AHH%3Amm%3Ass.png)
Tenho muitas imagens (>11.000) e quero criar um vídeo com avconv como timelaps. Com o ffmpeg eu fiz o truque com:
ffmpeg -r 25 -i "/mnt/stora/dahopi/Pictures/Gartencam/%*.jpg" \
-vf scale=800:600 -c:v mpeg4 -vtag xvid -qscale:v \
10 gartencam.avi
Mas com o avconv isso não funciona. Acho que o problema é o seletor de arquivo %*.jpg
e me pergunto se tenho a chance de criar o vídeo sem modificar o nome do arquivo.
Se não, você conhece outra ferramenta para resolver o problema?
Responder1
Receio que você esteja certo sobre o erro ser devido ao seletor de arquivos. Citando o manual:
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.
Se quiser, você pode começar com um número inteiro maior que 0:
-start_number start Specify the first number in the sequence
Você realmente não precisa renomear: você pode criar links simbólicos com o ln
comando, o que ocuparia muito pouco espaço em seu disco.
Aconselho você a fazer um backup de suas fotos antes de tentar os scripts
Você pode tentar usar este script 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
Este script assume que todas as suas imagens estão localizadas dentro de um diretório contendo apenas as imagens que você deseja incluir no seu vídeo. Para usá-lo:
- crie um diretório de saída que conterá seus links:
mkdir output
- execute
./script.sh nameofthefoldercontainingyourimages output