LINUX.ORG.RU

Посоветуйте прогу для создание Скрееншотов к видео (Thumb Превю к фильму)


0

2

Посоветуйте прогу для создание скрееншотов типа такое 6-8 кадров http://img183.imageshack.us/img183/917/battleofbritain1969m720.jpg

пробовал MTN (Movie Thumbnailer) нормальная но иногда проблемы с некоторыми видео файлами =(

не понял как через mplayer это делать нашел вот такую прогу _http://www.openshot.org/download/ вроде бы она тоже умеет скриншоты вытаскивать с видео но не разобрался еще

_http://blog.amnuts.com/2007/06/22/create-a-random-thumbnail-of-a-video-file/ тут тоже кое что нашел но не понял как это настроить вроде бы с web-сервером работает

помогите пожалуйста буду ждать



Последнее исправление: mintlinux (всего исправлений: 1)
Ответ на: комментарий от mintlinux

Только если редактировать скрипт. А вот и он:

#!/bin/bash
# This is the "quickthumb.sh" script to implement a quick and dirty 
# video thumbnails generation using mplayer and imagemagick.
# 
# Feel free to use, share and modify this script whichever way you like.
#--- lucif0rm 
ARGS=2
E_WRONGARGS=65
TEMPDIR=$TMP$(echo "quickthumb")

# As usual, check for arguments and print usage
#-------------------------------------------------------------------
if [ $# -lt "$ARGS" ]
  then
    echo
    echo "Usage: quickthumb <path to the video file> <number of frames> "
    echo
    echo "makethumb will capture given number of frames from"
    echo "the video file and make a gallery-like preview with"
    echo "caption."
    echo "For a better result please use even numbers"
    exit $E_WRONGARGS 
fi  

if [ ! -e "$1" ]
  then
    echo 
    echo "File" $1 "not found, exiting" 
    exit $E_WRONGARGS
fi

if [ ! -r "$1" ]
  then
    echo 
    echo "Could not read file" $1 ", exiting" 
    exit $E_WRONGARGS
fi
# This is a parsetime() function which accept number 
# of seconds as an argument and return time in format hh:mm:ss

parsetime () {
	VAL=`echo "tmp=$1; tmp /= 1; tmp" | bc`; # round seconds
	H=$( echo $VAL/3600 | bc ) #get hours
	if [ $H -lt 10 ] 
	  then H=$( echo "0" )$H #if less then 10, add one more zero to construct a classic time representation
	fi
	M=$( echo $VAL/60 | bc ) #get minutes
	
	if [ $M -lt 10 ] 
	  then M=$( echo "0" )$M 
	fi
	S=$(echo "scale=0 ; "$VAL-\($H*3600\)-\($M*60\) | bc)
	
	if [ $S -lt 10 ] 
	  then S=$( echo "0" )$S
	fi
	PARSED_TIME=$( echo "$H:$M:$S" )

}



# Let's gather info about our file
#-------------------------------------------------------------------
# Make a temp dir (erased BEFORE each run)
# test if temp dir exists

if [ -e $TEMPDIR ]
  then
    rm -Rf $TEMPDIR
fi
mkdir $TEMPDIR
# Extract full path from ANY given filename, 
# thus allowing user to specify filename in any format 
# (relative or absolute path).
OLDPATH=$(pwd)
FULLPATH=$(readlink -f "$1")
cd $TEMPDIR
INFO=$TEMPDIR/info

# Pass a video file to the mplayer 
#-------------------------------------------------------------------
# Read some parameters, used later 
mplayer -identify -frames 0  "$FULLPATH" > $INFO 2>&1
# Calculate interval for taking screenshots,
# (splitting the source file equally)
# e.g if input file's duration is 20 seconds
# and user specified 4 screenshots,
# then screenshots would be taken 
# at 2.5, 7.5, 12.5 and 17.5 seconds.
TIME=`cat $INFO | grep ID_LENGTH | sed -e 's/^.*=//g'`
SEEK=`echo \($TIME-1\)/\(2*$2\) | bc`
DELTA=`echo $SEEK*2 | bc`
# Now we will take screenshots

COUNT=1
until [ $COUNT -gt $2 ]; do
        mplayer -vo png:z=9 -frames 1 -ss $SEEK -nosound "$FULLPATH" > /dev/null 2>&1   
	# Here we will annotate each frame with the playback time
	parsetime "$SEEK"
	mogrify -strokewidth 1  -stroke black -pointsize 48 -fill white  -annotate +5+48 "$PARSED_TIME" 00000001.png
	# And move screenshot file to avoid it being 
	# overwritten in the next cycle 
	PRE=$( echo "-" ) #Here we add a prefix to enshure proper sorting
	if [ $COUNT -lt 10 ] 
	  then PRE=$( echo "-0") 
	fi
	mv 00000001.png t$PRE$COUNT.png
	let COUNT=COUNT+1
	let SEEK=$SEEK+$DELTA
done 

# Let's gather some more info like file name and stuff.
# -------------------------------------------------------------------
# Parse filename from the path. If you wish to keep
# the extension, remove second sed expression___________________V_this_one__V
FILENAME=$(echo "File: ")$( echo $FULLPATH | sed -e 's/^.*\///g' -e 's/\..*$//g' )
# Compute file size in bytes and megabytes 
FILESIZE=$(echo "Size: ")$(stat -c%s "$FULLPATH")$(echo " bytes (")$(echo `stat -c%s "$FULLPATH"`/\(1024*1024\) | bc )$(echo "MiB)") 
# Read info about video, provided by mplayer
# TODO audio and/or video bitrate could be 0 with some video files
# TODO is there a way to make a workaround?
VIDEO=`cat $INFO | grep VIDEO:`
VCODEC=`cat $INFO | grep "Selected video codec:" | sed -e 's/Selected//g'`
# Same for audio
AUDIO=`cat $INFO | grep AUDIO:`
ACODEC=`cat $INFO | grep "Selected audio codec:" | sed -e 's/Selected//g'`

# Calculate total time
parsetime "$TIME"
# We'll reserve one line of text for user
# Put whatever you want here
USER="«created with quickthumb bash script»"

# Now let's make a preview using imagemagick.
# -------------------------------------------------------------------
# First of all we will combine all images together
montage *.png -tile 2x -geometry 400x\>+0+0 -background black montaged.png
# Make a black header for the combined image
convert -size 800x160 xc:black header.png
convert -append header.png  montaged.png -background black converted.png

# Put on the video information data
mogrify -pointsize 24 	            -fill white -annotate +5+24 "$FILENAME" -pointsize 18 -annotate +5+52 "$FILESIZE $PARSED_TIME" \
					            -annotate +5+72 "$VIDEO" -fill gray -annotate +5+92 "$VCODEC" \
						    -fill white -annotate +5+112 "$AUDIO" -fill gray -annotate +5+132 "$ACODEC" \
						    -fill "#333" -annotate +5+152 "$USER" converted.png 
# And return completed preview to the initial directory
mv converted.png $OLDPATH/$(date +"%T" | sed -e 's/\:/_/g')$(echo "-thumbnail.png")
 #That's all!
exit 0
lucif0rm
()

SMPlayer умеет. Только делает как-то много скриншотов. Наверное можно это изменить.

impr
()

Что может быть проще, чем набрать mplayer -vf screenshot yourfile.avi и делать скриншоты нужных моментов элементарным нажатием клавиши 's'? В текущей директории получите файлы shot0001.png, shot0002.png и т.д.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от lucif0rm

Только если редактировать скрипт. А вот и он: Спасибо.... гмм не знаю не смог запустить скрипт =( может мини мануал дашь какой нибуль?

mintlinux
() автор топика
Ответ на: комментарий от muzenbaher

VideoCut-vm по скрееншотам на сайте прога выглядит не плоха а как его установить? только исходники не знаешь нет ли deb/ пакет для него?

mintlinux
() автор топика
Ответ на: комментарий от impr

SMPlayer умеет. Только делает как-то много скриншотов. Наверное можно это изменить.

да умеет там в «Preview» нужно менять настройки но при запуске просить запущен ли «mplayer» потом сразу падает =( наверно я не корректно установил мплайер =(

mintlinux
() автор топика
Ответ на: комментарий от Eddy_Em

Что может быть проще, чем набрать mplayer -vf screenshot yourfile.avi и делать скриншоты нужных моментов элементарным нажатием клавиши 's'? В текущей директории получите файлы shot0001.png, shot0002.png и т.д.

только одну картинку делает а мне нужно 4x6

Нашел еще одну прогу QFrameCatcher ша буду его устанавливать посморю что-будет

mintlinux
() автор топика
Ответ на: комментарий от lucif0rm

./quickthumb.sh: line 111: let: SEEK=+: syntax error: operand expected (error token is «+») ./quickthumb.sh: line 98: [: /var/www/a/b/screen/a: integer expression expected ./quickthumb.sh: line 43: bc: command not found ./quickthumb.sh: line 44: bc: command not found ./quickthumb.sh: line 45: [: -lt: unary operator expected ./quickthumb.sh: line 48: bc: command not found ./quickthumb.sh: line 50: [: -lt: unary operator expected ./quickthumb.sh: line 53: bc: command not found ./quickthumb.sh: line 55: [: -lt: unary operator expected mogrify: unable to open image `00000001.png': No such file or directory @ blob.c/OpenBlob/2439. mogrify: unable to open file `00000001.png' @ png.c/ReadPNGImage/2854. mv: cannot stat `00000001.png': No such file or directory ./quickthumb.sh: line 111: let: SEEK=+: syntax error: operand expected (error token is «+»)

mintlinux
() автор топика
Ответ на: комментарий от mintlinux

только одну картинку делает а мне нужно 4x6

Делаете 24 скриншота на наиболее понравившихся эпизодах.

Далее используете ImageMagic: montage для объединения кадров в одну композицию, convert или mogrify для изменения размера итоговой картинки.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

ну и дела =(

Playing /home/mint4444/files/rojd.mp4. Quicktime/MOV file format detected. [mov] Video stream found, -vid 0 [mov] Audio stream found, -aid 1 VIDEO: [avc1] 1024x768 24bpp 30.000 fps 0.0 kbps ( 0.0 kbyte/s) vo: couldn't open the X11 display ()! Error opening/initializing the selected video_out (-vo) device. не сработал mplayer у меня

так..... пока что работает (MTN) и Video-Cut но Video-cut падает иногда если видео кодек h264

мне кажется что у меня проблемы с mplayer-ом SMplayer вышла подсказка что ваш mplayer старый обновите его до.. помогите удалить mplayer и установить новый mplayer

mintlinux
() автор топика
Ответ на: комментарий от mintlinux

У вас, скорее всего, просто не хватает кодеков. Я на свою дурацкую мандриву устанавливал mplayer из джентовских репозиториев, т.к. из «родных» был жутко кастрированным (не хватало множества кодеков, а mencoder вообще урезан был по самое не хочу).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

ша уже больше нечего не работает =) пробал ffmpegthumbnailer... этот тоже всего один скреен сделал =(

mintlinux
() автор топика
Ответ на: комментарий от mintlinux

если что кто нибудь что-то нового найдет пусть поделится +) подожду еще 5-6 дней потом сделаю решенной так как пока что лучше для меня Moviethumbnailer (MTN) и VideoCut-a нет спасибе «muzenbaher»

mintlinux
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.