![파일 이름이 yyyy-MM-dd:HH:mm:ss인 이미지에서 비디오를 만드는 방법](https://rvso.com/image/885977/%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%B4%20yyyy-MM-dd%3AHH%3Amm%3Ass%EC%9D%B8%20%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%97%90%EC%84%9C%20%EB%B9%84%EB%94%94%EC%98%A4%EB%A5%BC%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
이미지가 많고(>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