Мій приклад використання - це лише одна ескіза з відео, лише один файл, який можна використовувати як <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%.
Ось сценарій, який робить це .