Простой скрипт для нарезки видео для Youtube. Использует mplayer и ffmpeg, так что эти пакеты должны быть установлены, желательно из debian-multimedia. По умолчанию режет видео на куски по 14 минут 50 секунд, это значение можно поменять. Например ./video_split.sh film.avi
порежет видео на три части с именами part000-film.avi, part001-film.avi, part002-film.avi, длительностью 14:50 каждая (890 секунд), а
./video_split.sh 445 film.avi
порежет видео на шесть частей длительностью 7:25 (445 секунд) каждая.
Скрипт video_split.sh:
#!/bin/sh
usage()
{
echo "Usage:"
echo " $0 [time frame in seconds] <file name>"
}
set -e
# part length in seconds by default
part=890
# check parameters
if [ $# -eq 2 ]; then
part="$1"
file="$2"
elif [ $# -eq 1 ]; then
file="$1"
else
usage
exit 1
fi
if [ -z "$file" ]; then
usage
exit 1
fi
# counters
i=0
secs=0
# video length in seconds
len=`mplayer -identify -frames 0 "$file" 2>/dev/null | grep '^ID_LENGTH=' | sed 's/ID_LENGTH=//;s/\..*//'`
echo "Video length: $len"
# split
while [ $secs -lt $len ]; do
suffix=`printf '%03d' $i`
ffmpeg -vcodec copy -acodec copy -ss $secs -t $part -i "$file" "part${suffix}-${file}"
i=`expr $i + 1`
secs=`expr $secs + $part`
done
URL: http://barrel-of-herring.blogspot.com/2010/11/blog-post.html
Обсуждается: http://www.opennet.dev/tips/info/2485.shtml