while schleife will nicht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

while schleife will nicht

Beitrag von Colttt » 23.05.2013 21:42:42

hier zählt leider die schleife nicht hoch(padded), aber ich weiss leider nicht warum.. :(

wenn ich mir padded ausgebe kommt nichts raus..

Code: Alles auswählen

spa=`touch --date='00:00' /tmp/spa`
fru=`touch --date='23:59:59' /tmp/fru`

for dir in `ls -d /var/cache/zoneminder/events/[Aa-Zz]*`
        do
        oname=$(echo $dir |cut -d/ -f6)
        echo $oname
        mkdir /tmp/test/${oname}
        pic=$(find ${dir}/ -type d -newer /tmp/spa ! -newer /tmp/fru -printf "%p    %s    %AY-%Am-%Ad %TT \n" |grep /[0-9]| sort -M -k8,10 |awk '{print $1}')

        for data in $pic
         do
         idx=00000
          dat=$(ls ${data}/*.avi)   #ist immer nur eine avi datei im Ordner
                echo $dat
                for fin in $dat
                 do
                  echo $fin /tmp/test/$oname/
                  echo $idx
                  while [[ -e /tmp/test/$oname/${padded}.avi ]]; do ((idx++)); padded="$(printf "%05d" "${idx}")"; done;
                  #cp $data/$fin /tmp/test/$oname/$padded.jpg
                  ln -s $fin /tmp/test/$oname/${padded}.avi
echo $padded
                  #echo  $data /tmp/test/$oname/$idx.jpg
                done
         #ffmpeg -f image2 -i /tmp/test/$oname/%03d.jpg $oname.mpg
        done
        #echo $pic; exit
        #for i in $pic; do echo $i; done
        #echo $dir
  cd /tmp/test/$oname/
  ffmpeg -i %05d.avi -b 3000k ${oname}_`date -d yesterday +%F`.mpg
  cp ${oname}_`date -d yesterday +%F`.mpg /var/opt/Bilder/.
done
Debian-Nutzer :D

ZABBIX Certified Specialist

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: while schleife will nicht

Beitrag von rendegast » 24.05.2013 08:29:10

( So funktioniert das Skript nur als #!/bin/bash)


padded wird nicht gesetzt, ist für die while-Schleife also leer,
wird dann auch darin nicht gesetzt.
Ist dann auch für den 'ln' leer.

Vor der while-Schleife ein

Code: Alles auswählen

padded=$idx

Code: Alles auswählen

[ "x" = "x$padded" ] && padded=$idx
oder ähnlich?

#ffmpeg -f image2 -i /tmp/test/$oname/%03d.jpg $oname.mpg
...
ffmpeg -i %05d.avi -b 3000k ${oname}_`date -d yesterday +%F`.mpg
"%03d.jpg", "%05d.avi" ?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: AW: while schleife will nicht

Beitrag von Colttt » 24.05.2013 18:53:28

Hallo, danke werde ich mal prüfen, aber warum gehts dann hier: viewtopic.php?p=928584#p928584

Gesendet nit Tapatalk
Debian-Nutzer :D

ZABBIX Certified Specialist

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: while schleife will nicht

Beitrag von rendegast » 25.05.2013 07:15:07

rendegast hat geschrieben: "%03d.jpg", "%05d.avi" ?
Colttt hat geschrieben: aber warum gehts dann hier:
Ups, steht so ja in der manpage ffmpeg/avconv.


Colttt hat geschrieben: aber warum gehts dann hier:
Auch dort sollte beim
' cp $data/$fin /tmp/test/$oname/$padded.jpg '
das erste Bild als "/tmp/test/$oname/.jpg" entstanden sein,
das zweite dann als "/tmp/test/$oname/001.jpg" usw.
Das erste Bild "/tmp/test/$oname/.jpg" dürfte dann beim
' ffmpeg -f image2 -i %03d.jpg $oname.mpg ' aber auch nicht berücksichtigt worden sein.

Wenn, wie Du oben schreibst
#ist immer nur eine avi datei im Ordner
, existiert dann auch immer nur ein $oname/.avi, welches nicht auf das ffmpeg-Muster '-i %05d.avi' paßt.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: while schleife will nicht

Beitrag von Colttt » 26.05.2013 20:35:53

existiert dann auch immer nur ein $oname/.avi, welches nicht auf das ffmpeg-Muster '-i %05d.avi' paßt.
nee das stimmt so nicht ganz, Zoneminder macht pro kamera einen Ordner und dort immer pro event einen ordner jedes event hat mehrere Bilder.. aber da es bei einigen Kameras zusammengerechnet >70000 Bilder sind und das ganz schön lange dauert das hoch zu zählen und ein link zu erstellen, lass ich jetzt von Zoneminder von jedem event automatisch ein Video erstellen und diese sortiere ich mir kopiere/nummeriere sie und dann erstell ich daraus ein video pro kamera/tag(bzw Zeitspanne).
Debian-Nutzer :D

ZABBIX Certified Specialist

Antworten