Сценарий вырезает фрагмент видео из выделенного файла.
В скрипте используется приложение mencoder и zenity, которые должны быть установлены.
текст скрипта:
#!/bin/bash
#
# Сценарий вырезает фрагмет из видео
# Для работы скрипта необходимо установленное приложение Mencoder и zenity
# Данный скрипт необходимо расположить в ~/.gnome2/nautilus-scripts и сделать его исполнимым
# после этого сценарий станет доступен через контекстное меню GNOME в разделе "Сценарии".
#
IFS=$'\t\n';
# Проверка наличия приложений
if ! [[ -a `which mencoder` ]]; then
zenity --error --text="Не установлен Mencoder\!\nУстанови указанное приложение и повтори попытку\!";
exit 0;
fi
outtype="";
fileselect="";
file="";
outfile="";
# Если ни один файл не выбран то сразу выходим из программы
if [[ $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS == "" ]];
then
zenity --info --text="Ничего не выбрано\!\nРабота закончена\!";
exit 0;
else
# Выбор каталога для сохранения
save_dir=$(zenity --file-selection --directory --title="Где сохраняем?");
if [[ "$?" != 0 ]]
then
zenity --warning --text="Каталог для сохраниния не выбран!\n\nРабота скрипта прекращена!"
exit 0;
fi
if [[ "$save_dir" == "" ]]; then
save_dir=`pwd`;
fi
# Ввод имени для обрезанного файла
name_fragm=$(zenity --entry --title="Ввод имени" --text="Введи имя файла фрагмента без расширения");
if [ "$?" = 1 ] ; then
zenity --error --title="Предупреждение" --text="Выполнение отменено\!" ;
exit 0 ;
fi
if [[ "$name_fragm" == "" ]]; then
zenity --error --text="Имя фрагмента не может быть пустым\!\nПовтори попытку\!";
exit 0;
fi
# Ввод начала и конца фрагмента
begin_time=$(zenity --entry --title="Ввод начала" --text="Введи время начала фрагмента\nв формате чч:мм:сс");
if [ "$?" = 1 ] ; then
zenity --error --title="Предупреждение" --text="Выполнение отменено\!" ;
exit 0 ;
fi
if [[ "$begin_time" == "" ]]; then
begin_time="00:00:00";
fi
end_time=$(zenity --entry --title="Ввод конца" --text="Введи время конца фрагмента\nв формате чч:мм:сс");
if [ "$?" = 1 ] ; then
zenity --error --title="Предупреждение" --text="Выполнение отменено\!" ;
exit 0 ;
fi
if [[ "$end_time" == "" ]]; then
end_time="00:00:00";
fi
if [[ "$begin_time" == "$end_time" ]]; then
zenity --error --text="Время начала фрагмента совпадает со временем конца фрагмента\!\nСценарий работу завершил\!";
exit 0;
fi
# Цикл конвертирования выделенных файлов
for fileselect in `echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"`
do
if [[ `file -i $fileselect` == *video* ]]; then
# Формируем новое имя файла
base=`basename $fileselect`;
file=$save_dir/$name_fragm.${base##*.};
next=0; # Это для формирования имени файла если совпало (новый файл - счёт с нуля)
nextfile=$file;
while [ -e $nextfile ]
do
next=$(echo "$next + 1" | bc) # это счётчик
nextfile=${file%%.*}-$next.${file##*.}; # это формирование нового имени с учётом счётчика
done
file=$nextfile;
# Запускаем mencoder
mencoder -ovc copy -oac copy -ss $begin_time -endpos $end_time -o $file $fileselect 2>&1 | zenity --width 500 --title \
"Mencoder - Видео конвертер" --text "Вырезаю: `basename $fileselect`" \
--progress --pulsate --auto-close
fi
done
zenity --info --text="Готово!";
fi
exit 0;
http://g-scripts.sourceforge.net/http://www.sakryukin.ru//?module=filesdb&id=2&fid=28http://www.sakryukin.ru//?module=filesdb&id=2