Kasing penggunaan saya hanya satu thumbnail dari video, hanya satu file untuk digunakan sebagai <video>poster tag. Jadi, apa cara cepat untuk membuat ini?
Dengan ffmpeg, Anda dapat melakukan ini:
ffmpeg -ss 123 -y -i video.mp4 -r 1 -updatefirst 1 -frames 1 poster.jpg
Yang akan memberikan frame dekat kedua 123dari video.mp4disimpan sebagai poster.jpg.
Masalahnya, seperti yang Anda lihat, adalah kita perlu tahu mana yang benar.
Untuk menjaga agar dependensi kami tetap rendah, kami akan menggunakan ffmpeg sendiri untuk ini:
# 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% video sepertinya pilihan umum, tetapi Anda bisa membuatnya 33% atau 50% juga.
Inilah skrip yang melakukan ini .