URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7685
[ Назад ]

Исходное сообщение
"Не выпоняется скрипт"

Отправлено Ton , 05-Ноя-08 16:48 
Здравствуйте!
задача такова: нужен скрипт,который будет перекодировать mov-файлы в flv, и названия файлов должно оставаться таким же,но с расширением .flv.
Было придумано такое решение
file.sh

#!/bin/bash

dir=/path/to/video/files
for FILES in `$dir/*.mov`
do
    newfile=$dir/$FILES.flv
          mencoder $FILES -ofps 25 -o $newfile -of lavf -oac mp3lame -lameopts abr:br=192 -srate 44100 -ovc lavc -lavcopts vcodec=flv:aspect=16/9:keyint=50:vbitrate=1500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=1024:576
    find $dir -name "*.mov.flv" | sed s/.mov// > $dir/name.tmp
    
    IFS="
    "
    array=(`cat $dir/name.tmp`)
    newname=${array[0]}
    touch $newname
    mv $newfile $newname
    
done
exit 0

но при запуске скрипта вылезает ошибка:
file.sh: line 17: /path/to/video/files/video1.mov: cannot execute binary file

помогите плиз!!!


Содержание

Сообщения в этом обсуждении
"Не выпоняется скрипт"
Отправлено Andrey Mitrofanov , 05-Ноя-08 17:00 
>#!/bin/bash
>
>dir=/path/to/video/files
>for FILES in `$dir/*.mov`

Кавычки - ` - лишние.

> do
> newfile=$dir/$FILES.flv

newfile=${FILES%.mov}.flv

>       mencoder $FILES

про это ничего не скажу.

>    find $dir -name "*.mov.flv" | sed s/.mov// > $dir/name.tmp
>
> IFS="
> "
> array=(`cat $dir/name.tmp`)
> newname=${array[0]}
> touch $newname
> mv $newfile $newname

Уже не нужно. Всё, начиная с find.

>done
> exit 0

exit в "простеньком" скрипте тоже не очень нужен, в общем-то.

>но при запуске скрипта вылезает ошибка:
>file.sh: line 17: /path/to/video/files/video1.mov: cannot execute binary file

Это от ненужных кавычек в :-) п.1.

>помогите плиз!!!

На здоровье.


"Не выпоняется скрипт"
Отправлено Ton , 05-Ноя-08 17:13 
Огромное спасибо!
поясните пожалуйста
${FILES%.mov}.flv
А mov останутся?!=)

"Не выпоняется скрипт"
Отправлено Ton , 05-Ноя-08 17:26 
>Огромное спасибо!
>поясните пожалуйста
>${FILES%.mov}.flv
>А mov останутся?!

Кажется разобрался!
Все работает!
еще раз спасибо!


"выпоняется скрипт"
Отправлено Andrey Mitrofanov , 06-Ноя-08 08:59 
>Огромное спасибо!

Пожалуйста.

>поясните пожалуйста

man bash
info bash
google.ru -> учебник по bash

>${

макроподстановка
>FILES

из значения переменной FILES
>%

удалить _с_конца_
>.mov

эти символы
>}

Макроподстановка кончилась: значение "функции" ${} вставляются на её место.
>.flv

Эти символы - "просто" символы, добавляются в конце результата макроподстановки.

>А mov останутся?!=)

Буквы? Нет.
Или файлы?... Файлы в оригинале, вроде, не удаляли.


"выпоняется скрипт"
Отправлено Ton , 06-Ноя-08 12:49 
>[оверквотинг удален]
>
>Макроподстановка кончилась: значение "функции" ${} вставляются на её место.
>>.flv
>
>Эти символы - "просто" символы, добавляются в конце результата макроподстановки.
>
>>А mov останутся?!=)
>
>Буквы? Нет.
>Или файлы?... Файлы в оригинале, вроде, не удаляли.

понятно!спасибо!