FFmpeg는 비디오를 나타내는 썸네일로 사용할 수있는 비디오에서 이미지를 캡처 할 수 있습니다. 이를 수행하는 가장 일반적인 방법은 FFmpeg Wiki에 있습니다.
그러나 일정 간격으로 임의의 프레임을 선택하고 싶지 않습니다. 장면 변경 사항을 캡처하기 위해 FFmpeg에서 필터를 사용하는 몇 가지 옵션을 찾았습니다.
필터 thumbnail
는 비디오에서 가장 대표적인 프레임을 찾으려고합니다.
ffmpeg -i input.mp4 -vf "thumbnail,scale=640:360" -frames:v 1 thumb.png
다음 명령은 이전과 비교하여 40 % 이상의 변경 사항이있는 프레임 만 선택하고 장면 변경 일 수 있습니다. 5 개의 PNG 시퀀스를 생성합니다.
ffmpeg -i input.mp4 -vf "select=gt(scene\,0.4),scale=640:360" -frames:v 5 thumb%03d.png
Fabio Sonnati 에게 상기 명령에 대한 정보 제공 . 두 번째 이미지는 n 개의 이미지를 가져 와서 가장 잘 선택할 수 있으므로 더 좋아 보였습니다. 나는 그것을 시도하고 동일한 이미지를 5 번 생성했습니다.
더 많은 조사로 나를 이끌었습니다.
ffmpeg -i input.mp4 -vf "select=gt(scene\,0.5)" -frames:v 5 -vsync vfr out%02d.png
-vsync vfr
다른 이미지를 얻을 수 있습니다. 여전히 비디오의 첫 번째 프레임을 선택합니다. 대부분의 경우 첫 번째 프레임은 크레딧 / 로고이며 의미가 없으므로 -ss
3을 추가 하여 비디오의 처음 3 초를 버립니다.
마지막 명령은 다음과 같습니다.
ffmpeg -ss 3 -i input.mp4 -vf "select=gt(scene\,0.5)" -frames:v 5 -vsync vfr out%02d.jpg
이것이 내가 할 수있는 최선이었다. 5 개의 비디오 만 선택했기 때문에 모든 비디오가 대부분 비디오의 시작 부분이며 비디오에서 나중에 발생하는 중요한 장면을 놓칠 수 있습니다.
다른 더 나은 옵션을 위해 당신의 두뇌를 선택하고 싶습니다.
libopenjpeg
..로 컴파일 했는지 차이가 있는지 확실하지 않습니다.