비디오에서 썸네일 만들기


11

비디오에서 간단한 캡처를하려면 어떻게해야합니까? 바람직하게는 커맨드 라인에서?

아이디어 : 타임 라인에 배치 된 9 개의 시간에 대해 9 개의 스냅 샷을 찍어 JPG로 저장

예:

Movie length = 10 min
T1= snapshot of 1 min
T2= snapshot of 2 min
......
T9= snapshot of 9 min
   |   |
 T1| T2| T3
---+---+---
 T4| T5| T6
---+---+---
 T7| T8| T9
   |   |

가장 좋은 프로그램은 무엇입니까? 오픈 소스 프로그램이 있습니까?

답변:


5

ffmpeg 는 프레임 추출을 포함한 비디오 조작을위한 훌륭한 오픈 소스 도구입니다.

특정 타임 스탬프에서 단일 프레임을 추출하려면 다음과 같은 명령을 사용할 수 있습니다

ffmpeg -i video.avi -r 1  -t 00:01:00 -f image2 image%05d.png

-r은 프레임 속도입니다. 당신은 또한 같은 명령을 사용할 수 있습니다

ffmpeg -i video.avi -r 1/1440 -f image2 image%05d.png

1 분마다 한 프레임 씩 (24FPS 비디오 가정). % 05d는 각 썸네일 이미지의 서수를 5 자리로 형식화해야 함을 의미합니다.

이미지를 몽타주 (격자)로 결합하려면 ffmpeg를 사용하여 프레임을 추출한 후 imagemagick을 사용할 수 있습니다.


2

명령 행 프로그램은 아니지만 qframecatcher 를 사용할 수도 있습니다 .

우분투 / 데비안의 경우 요구 사항은 다음과 같습니다. sudo apt-get install libqt4-dev libxine-dev build-essential

wget http://download.berlios.de/qframecatcher/qframecatcher-0.4.1.tar.gz
tar xzf qframecatcher-0.4.1.tar.gz
cd qframecatcher/src
qmake
make
./qframecatcher

출처 : http://blog.radevic.com/2008/06/how-to-create-movie-or-video-frame.html


1

vcsi 는 Python으로 작성된 명령 줄 도구로 다음 명령을 사용하여 3 x 3 그리드의 스냅 샷을 만드는 데 사용할 수 있습니다.

vcsi -g 3x3 video.mkv -o output.jpg

0

내 유스 케이스는 비디오에서 하나의 썸네일이며 <video>태그 포스터 로 사용할 단일 파일 입니다. 그렇다면 이것을 만드는 가장 빠른 방법은 무엇입니까?

을 사용 ffmpeg하면 다음을 수행 할 수 있습니다.

ffmpeg -ss 123 -y -i video.mp4 -r 1 -updatefirst 1 -frames 1 poster.jpg

그것은 당신에게 두 번째 근처의 프레임을 제공합니다 123video.mp4로 저장을 poster.jpg.

보시다시피, 문제는 어느 것이 옳은지를 알아야한다는 것입니다.

종속성을 낮게 유지하기 위해 ffmpeg 자체를 사용합니다.

# Get the time as h:m:s (non-padded)
l=$(ffmpeg -i video.mp4 2>&1 | grep Duration: | sed -r 's/\..*//;s/.*: //;s/0([0-9])/\1/g')
# Convert that into seconds
s=$((($(cut -f1 -d: <<< $l) * 60 + $(cut -f2 -d: <<< $l)) * 60 + $(cut -f3 -d: <<< $l)))
# Get frame at 25% as the thumbnail
ffmpeg -ss $((s / 4)) -y -i video.mp4 -r 1 -updatefirst 1 -frames 1 poster.jpg

비디오의 25 %는 일반적인 선택처럼 보이지만 33 % 또는 50 %로 만들 수도 있습니다.

이 작업을 수행하는 스크립트는 다음과 같습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.