동영상 스냅샷을 찍는 프로그램?

동영상 스냅샷을 찍는 프로그램?

비디오 파일(avi, mpeg, mp4...)의 일부를 지정하고 특정 초/분마다 "스냅샷"을 찍어 일련의 이미지 파일(예: jpeg)로 저장할 수 있는 프로그램이 있습니까? 예를 들어 0시 45분에서 1시 00분 사이의 영화 부분을 선택하고 30초마다 "스냅샷"을 찍습니다.

비디오 플레이어(예: VLC) 또는 플러그인의 일부일 수 있습니다... 요점은 스냅샷을 수동으로 찍는 대신 자동으로 스냅샷을 찍는 것이 필요하다는 것입니다.

또한, 이러한 일련의 이미지 파일을 애니메이션 GIF 또는 PNG 파일로 변환할 수 있는 좋은 프로그램이 있습니까? (도미에게 스냅을 애니메이션 GIF/PNG로 저장할 수 있는 옵션이 있다면 확실히 추가 보너스가 될 것입니다.)

답변1

이 작업을 수행 하는 데 사용할 수 있습니다 ffmpeg. 가지다ffmpeg 웹사이트에는 몇 가지 예가 있습니다..

다음은 몇 가지입니다:

  1. img001.jpg이렇게 하면 , img002.jpg, img003.jpg, ... 라는 이름의 썸네일이 매분 생성됩니다 ( %03d각 썸네일의 일련 번호는 3자리 형식이어야 함을 나타냄).

    $ ffmpeg -i myvideo.avi -f image2 -vf fps=fps=1/60 img%03d.jpg
    
  2. thumb0001.bmp10분마다 , , ... 이라는 이름의 썸네일이 생성됩니다 thumb0002.bmp.thumb0003.bmp

    $ ffmpeg -i test.flv -f image2 -vf fps=fps=1/600 thumb%04d.bmp
    

짧은 영상으로 만들고 싶으시면 다시 도움을 요청하시면 됩니다 ffmpeg. 에서 논의됨해당 웹사이트의 이 페이지.

다음은 몇 가지 추가 예입니다.

  1. 여기서 각 이미지의 지속 시간은 5초입니다(초당 1/5 프레임의 역수). FFmpeg에게 입력 파일의 FPS 옵션(초당 프레임 수)을 매우 낮은 값으로 설정하도록 지시함으로써 출력에서 ​​FFmpeg가 프레임을 반복하도록 만들어 각 이미지를 일정 시간 동안 화면에 표시합니다.

    $ ffmpeg -f image2 -r 1/5 -i img%03d.png -c:v libx264 -r 30 out.mp4
    
  2. img001.jpg이미지에 번호가 매겨지고 시리즈( , img002.jpg, ) 별로 ​​정렬되지 않고 임의의 이미지 문자열이 있는 경우 img003.jpgffmpeg는 bash 스타일 와일드카드도 지원합니다(*는 모든 문자 수를 나타냄).

    $ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4
    

또는 PNG 이미지의 경우:

    $ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.png' -c:v libx264 out.mp4

결과 비디오를 애니메이션 GIF로 만들려면 다음과 같은 SO Q&A에 설명된 단계를 사용할 수 있습니다.ffmpeg를 사용하여 avi에서 gif를 생성하는 방법은 무엇입니까?:

$ ffmpeg -i video.avi -t 10 out%02d.gif

그 다음에:

$ gifsicle --delay=10 --loop *.gif > anim.gif

도구에 대한 링크는 다음과 같습니다.gifsicle.

답변2

또한 시작했지만 ffmpeg@slm이 나를 이겼습니다. :)

mplayer어쨌든, 이를 사용하여 빠르고 쉽게 덤프를 만들 수도 있습니다 . 예를 들어:

mplayer -nosound -ss 45:00 -endpos 15:00 -vo png:z=7 -sstep 30 your_vid.mp4
  • -ss시작 위치입니다.
  • -endpos기간입니다.
  • -vo출력 드라이버가 필요합니다. mplayer -vo help목록을 가져오는 데 사용됩니다 . 많은 배포판에서는 대부분의 mplayer 옵션에 탭 완성 기능도 제공합니다.mplayer -voTabTab
  • -sstep 30프레임 사이의 30초를 나타냅니다.

시작 및 끝 위치:

<[[hh:]mm:]ss[.ms]|size[b|kb|mb]>

광범위한 계산과 버퍼링이 필요하기 때문에 100% 정확하지는 않지만 일반적으로 충분히 가깝습니다.


또한 gif89a 드라이버가 있지만 품질이 최고는 아닙니다( convert예를 들어 비디오 변환 및 컴파일을 사용하여 이미지를 덤프하는 것과 비교할 때 gifsicle). 물론 가지고 놀 수도 있습니다. GIF에 표시된 아바타와 같이 영화에서 바로가기를 만드는 데 더 좋습니다.

mplayer -ao null -ss 10:00 -endpos 5 -vo gif89a:fps=5.3 -vf palette,softskip,scale=240:135 videofile.ext

그런 다음 다음을 통해 출력 파일을 지정할 수도 있습니다.

-vo gif89a:fps=4.9:output=sample.gif

매우전혀 관련이 없지만 표시 목적으로 작성된 참고 사항 -vo은 ASCII 형식입니다.

mplayer -vo aa -monitorpixelaspect 0.5 video.mp4

출력 창을 최대화하고 5단계 뒤로 물러납니다.

관련 정보