여러 개의 JPEG로 비디오 만들기

여러 개의 JPEG로 비디오 만들기

움직임이 감지되면 JPEG 이미지(.jpg)를 FTP 서버에 업로드하는 CCTV 카메라가 있습니다. 이미지가 꽤 많이 나오는 것 같아서, 보기 편하게 영상으로 만들어볼까 합니다.

여러 Google 검색을 수행했지만 내가 기대했던 결과가 나오지 않았습니다. 제가 사용하고 있는 폴더에는 AyyMMddhhmmssff.jpg라는 이름의 이미지가 2000개 이상 있습니다. 이름을 바꿔야 하는 경우 FFMPEG가 작동하려면 이미 필요하다는 것을 알았으므로 그렇게 할 수 있습니다.

비디오를 재생할 때 이미지를 쉽게 볼 수 있도록 초당 하나 또는 초당 2개의 이미지를 원합니다. 예, 그렇게 하면 20/40분 이상의 동영상이 만들어질 것이라는 것을 알고 있습니다!

Windows, macOS 또는 Ubuntu 솔루션에 만족합니다! 제가 선호하는 것은 Windows입니다(FTP 서버가 Windows에 있기 때문입니다).

이미지매직

convert *.jpg video.mpg

이것은 훌륭하고 멋지고 간단하게 들렸습니다. 그러나 Mac(Brew를 통해 설치됨)과 Ubuntu에서 시도해 보았지만 관련 시스템의 성능이 모두 정지되었고 20분이 지나도 여전히 완료되지 않았습니다. 아무것도 할 수 없어서 Mac을 재부팅해야 했습니다!

FFMPEG

ffmpeg -y -r 6 -f image2 -s 1920x1080 -i <path>\%06d.jpg -vcodec libx264 -pix_fmt yuv420p <path>/video.mp4

저는 FFMPEG 사용에 관한 전문가는 아니지만 여러 작업에 사용해 보았는데 가지고 다니기 좋은 유틸리티라는 것을 알았습니다. 위 명령으로 비디오가 생성되지만 이미지가 너무 빨리 표시되어 비디오의 요점이 제거됩니다. 나는 값을 조정하려고 시도했고 더 나아질 수 있었지만 정확히 내가 원하는 것은 아닙니다. 한 번의 시도( -r 1IIRC 설정)로 인해 전체 동영상에 대한 단일 이미지가 생성되었습니다! 매뉴얼을 보았음에도 불구하고 FFMPEG 명령의 다양한 인수를 이해하지 못하는 것이 분명합니다!

답변1

연속된 번호를 매길 이미지의 이름을 바꾸면 다음을 사용할 수 있습니다.

ffmpeg -y -framerate 1 -i <path>\%06d.jpg -r 5 -c:v libx264 -pix_fmt yuv420p <path>/video.mp4

000001.jpg, 000002.jpg, ... 와 같이 연속적으로 번호가 매겨집니다. 000003.jpg각 이름에는 정확히 6개의 문자가 있으며 이는 %06dffmpeg에 전달된 조건을 충족합니다.

이름을 바꾸지 않으려면 다음 형식의 텍스트 파일을 만듭니다.

file first.jpg
file second.jpg
file third.jpg
...
file last.jpg

그런 다음

ffmpeg -f concat -r 1 -i list.txt -r 5 -c:v libx264 -pix_fmt yuv420p <path>/video.mp4

답변2

-r 5 대신 -framerate 5로 변경하면 초당 5프레임의 비디오가 생성됩니다. 필요에 맞게 숫자를 조정할 수 있습니다. 1은 각 이미지를 1초 동안 표시하고, 10은 더 빠르게 순환합니다.

ffmpeg -y -framerate 1 -i <path>\%06d.jpg -framerate 5 -c:v libx264 -pix_fmt yuv420p <path>/video.mp4

or

ffmpeg -f concat -r 1 -i list.txt -framerate 5 -c:v libx264 -pix_fmt yuv420p <path>/video.mp4

관련 정보