내 유스 케이스는 비디오에서 하나의 썸네일이며 <video>
태그 포스터 로 사용할 단일 파일 입니다. 그렇다면 이것을 만드는 가장 빠른 방법은 무엇입니까?
을 사용 ffmpeg
하면 다음을 수행 할 수 있습니다.
ffmpeg -ss 123 -y -i video.mp4 -r 1 -updatefirst 1 -frames 1 poster.jpg
그것은 당신에게 두 번째 근처의 프레임을 제공합니다 123
의 video.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 %로 만들 수도 있습니다.
이 작업을 수행하는 스크립트는 다음과 같습니다 .