$(w_user_recover)
EOF
;;
- /video/*/*.mp4)
+ /video/*/*.mp4|/video/*/*_thumb.jpg)
. "${_EXEC}/cgilite/file.sh"
FILE "${_DATA}/${PATH_INFO#/video/}"
;;
[ "${VIDEO_STATUS}" = public ] || AUTHOR || return 0
- thumb="${_BASE}/${CHANNEL_ID}/thumb_${VIDEO_ID}.jpg"
+ thumb="${_BASE}/video/${CHANNEL_ID}/${VIDEO_ID}_thumb.jpg"
[ "$NAME" = \\ ] && NAME="(Unnamed Video)"
printf '[div .video .thumb
[h3 [a href="%s/channel/%s/%s/" . %s]]
hits descr_cache futureuse
local ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS \
DESCR_CACHE FUTUREUSE
- local arg video
- video="$_DATA/$CHANNEL_ID/$VIDEO_ID.mp4"
+ local arg video thumb
+ video="${_DATA}/${CHANNEL_ID}/${VIDEO_ID}.mp4"
+ thumb="${_DATA}/${CHANNEL_ID}/${VIDEO_ID}_thumb.jpg"
for arg in "$@"; do case $arg in
name=*) name="${arg#*=}";;
resy="${arg#*height=}"; resy="${resy%%${BR}*}"
length="${arg#*duration=}"; length="${length%%${BR}*}"
fi
+ if [ "$length" -a ! "${thumb}" -nt "${video}" ]; then
+ ffmpeg -nostdin -y -i "$video" -vf scale=320:-2,fps=10/${length} "${thumb%.jpg}_%02d.jpg"
+ montage "${thumb%.jpg}_"[01][0-9].jpg -tile 10x1 -geometry 320x180+0+0 -quality 85 "${thumb}"
+ rm -- "${thumb%.jpg}_"[01][0-9].jpg
+ fi 2>&-
if LOCK "$vid_db"; then
while read -r ID NAME DESCRIPTION RESX RESY LENGTH COVER STATUS UPLOADER HITS \