Kullanım durumum, videodan yalnızca bir küçük resim, <video>
etiket posteri olarak kullanılacak tek bir dosya . Peki, bunu yapmanın hızlı bir yolu ne olurdu?
İle ffmpeg
şunları yapabilirsiniz:
ffmpeg -ss 123 -y -i video.mp4 -r 1 -updatefirst 1 -frames 1 poster.jpg
Bu size ikinci yakınında çerçevesini verecek 123
ait video.mp4
olarak kaydedilir poster.jpg
.
Gördüğünüz gibi sorun, hangi saniyenin doğru olduğunu bilmemiz gerektiğidir.
Bağımlılıklarımızı düşük tutmak için bunun için ffmpeg kullanacağız:
# 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
Videonun% 25'i ortak bir seçim gibi görünüyor, ancak videoyu% 33 veya% 50 de yapabilirsiniz.
İşte bunu yapan bir komut dosyası .