>В консоли, в которой работает запуск "вручную", сделать
> echo $PATH
>В скрипт в начало написать
> PATH=<результат предыдущего шага>
> export PATH tnx. Вот я лопухнулся ...
Это у меня все результат бессоных ночей при скоростном запуске сервера FreeBSD в неизученной области применения :)
Конечный работоспособный скрипт:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin
export PATH
# Count Camer
countcam=1
# Init folder files video record
initdir="/var/tmp/cam"
# Folder output files
outdir="/var/ftp/cam"
# Temp file converting video stream
outfileavi="/tmp/tempencode.avi"
# Main code procedure converting:
rm -f $outfileavi
curcam=1
while [ $curcam -le $countcam ]
do
curdir=$initdir$curcam
cd $curdir
count=0
for file in *
do
count=`expr $count + 1`
done
if [ $count -gt 1 ] ; then
for file in *
do
count=`expr $count - 1`
if [ $count -gt 0 ] ; then
outfile7z=$outdir$curcam/$file".7z"
/usr/local/bin/ffmpeg -i $file -y -an -s 640x480 -hq -b 512 -vcodec msmpeg4v2 $outfileavi && \
/usr/local/bin/7z a -mx=7 -y -bd -p1972 $outfile7z $outfileavi && \
/bin/rm -f $outfileavi && \
/bin/rm $file
fi
done
fi
curcam=`expr $curcam + 1`
done
exit 0
Теперь работает и из под cron ...
Но также если кто то сможет оживить второй вариант решения этой задачи (через find ...), то было бы очень не плохо. Заместо целой программы можно было бы обойтись буквально одной строкой ...
А так же, если кто знает, может ли ffmpeg использовать возможность многопроцессорных вычислений ?
При отработке этого скрипта, через вывод top видно что 7z при архивации использует все 4 процессора, а ffmpeg при кодировании - только один ...