C:\> ffmpeg -y -i 12.wmv -vframes 1 -ss 00:00:02 -an -vcodec png -f rawvideo -s 320*240 6.png
※다운로드는 로그인하셔야 가능합니다. | | ffmpeg [ 2 ] [ ffmpeg.zip ] 24858485 Byte
ffmpeg 를 이용해 썸네일을 추출하는 옵션은 조사한 바에 의하면 두가지로 압축이 가능하다.
옵션1.
ffmpeg -y -i [videofile] -vframes 1 -ss 00:00:02 -an -vcodec png -f rawvideo -s 320*240 [thumbnailimage.png]
여기서 [videofile] 에는 1.avi 등 썸네일을 추출하려는 원본 파일 이름(경로)을 쓴다.
[thumbnailimage.png] 는 추출되는 이미지의 이름을 지정하는 것으로, 경로로 지정해도 된다.
여기서 보면 알겠지만, 테스트결과 png 파일로만 추출됨을 확인했다.(gif,jpg 등으로 지정하면 오류 발생)
옵션2.
ffmpeg -i video.flv -an -ss 00:00:03 -an -r 2 -vframes 1 -y %d.jpg
이것은 flv 파일에서 썸네일을 추출할때 쓰는 옵션이라며 떠도는 내용인데,
테스트결과, flv 파일만이 아니라 다른 포맷의 파일도 이 옵션으로 썸네일이 추출됨을 확인했음.
(avi,wmv,flv,k3g,sktm 등 모두 됨)
도스 커맨드 상태에서 실행한 것을 직접보면,
옵션1 을 이용해서 png 파일로 썸네일을 추출할때.
windows XP professional 에서 테스트시 이상한 오류들이 발생하여 문제를 찾지 못했는데,
원인은, 이런 저런 유틸리티등으로 만들어진 flv 파일이 유틸리티 오류로 0byte 의 파일인 경우에 발생한 것으로 원인 규명.
처음에는 문제를 몰라 사용자 컴퓨터의 환경에 영향을 받는 것으로 생각하였으나,
결론적으로, 사용자 컴퓨터의 환경과는 별개의 문제였음.
두번째 옵션의 경우, gif,jpg,png 로의 추출이 모두 가능했으며,
곰플레이어의 코덱오류로 영상이 재생되지 않는 상황(TSCC 코덱없음 오류) 에서도 썸네일이 추출되는 결과를 보임.
이제, 두번째 옵션의 세부적인 내용을 살펴보면,
ffmpeg -i video.flv -an -ss 00:00:03 -an -r 2 -vframes 2 -y %d.jpg
로 옵션을 주면, 1.jpg, 2.jpg 두개의 이미지가 생성되는 것을 확인할 수 있다.
다시,
ffmpeg -i video.flv -an -ss 00:00:03 -an -r 2 -vframes 1 -y %d.jpg
이라고 옵션을 주면
1.jpg 파일만 생성되는데 그 사이즈가 약 17.6KB 였다.
즉, 옵션의 두개의 숫자는 파일의 이름과 관련있는 것이 아니라, 다른 옵션임.
다시,
ffmpeg -i video.flv -an -ss 00:00:03 -an -r 1 -vframes 2 -y %d.jpg
이라고 옵션을 주면
다시 두개의 jpg 파일이 생성(1.jpg,2.jpg) 되는데,
즉, 첫번째 1 이라는 숫자는 썸네일의 퀄리티를 지정하며, 두번째 2 라는 숫자는 몇장을 뽑아내는지 지정함을 확인.
1.jpg 와 2.jpg 파일을 살펴보면, 약간의 차이(동작이 변화. 즉 움직였음)가 있는데, 프레임 단위로 2장의 썸네일을 뽑아내는 옵션으로 보아짐.
이를 확인하기 위해 다시,
ffmpeg -i video.flv -an -ss 00:00:03 -an -r 1 -vframes 6 -y %d.jpg
이라고 옵션을 주면,
6장의 jpg 파일이 생성되고, 인물이 움직임을 확인할 수 있다.
그렇다면, 옵션의 마지막에 파일이름을 지정한 %d.jpg 는 무엇인가.
%d 는 C++ 에서 사용하는 변수명 같은 의미로 봐야할것 같다.
즉, 연속적으로 캡쳐(추출,썸네일)되는 이미지들의 이름을 순차적으로 지정하기 위해 변수명으로 선언하는 듯 하며,
따라서, 추출될 이미지의 이름을 지정하기 위해서는
test_%d.jpg 처럼 %d 변수를 유지한채 이름을 붙여주면 된다.
그러면, test_1.jpg 파일이 생성되는것을 확인할 수 있다.
P.S.
사용자가 올린 영상 파일 자체의 오류로 인해 ffmpeg.exe 오류가 발생할 수 있으며,
현재의 도스 버전으로는 이 오류를 감지해 내거나 오류에 대한 메세징 처리가 원만하지 않은데,
이런 불완전함에도 불구하고,
별도의 특별한 설치절차 없이, 간단한 옵션으로 썸네일을 뽑아낼 수 있는 유용한 방법이 될 듯 하다. |
|
|
|
|
|