Weblog.bastian.bittorf: Unterschied zwischen den Versionen

Aus Weimarnetz Wiki
Zur Navigation springen Zur Suche springen
 
(24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
==ash optimierungen==
 +
===Konstrukte die das gleiche machen, aber sich in der Geschwindigkeit unterscheiden===
 +
 +
<source lang="bash">
 +
#!/bin/sh
 +
todo
 +
</source>
 +
 +
time script.sh
 +
 +
 +
Tags: bash, ash, speedup, optimize, script, faster | [[Benutzer:Fries43|fries43]] 15:50, 31. Jan. 2010 (UTC)
 +
 +
==NV-RAM-Variablen loeschen==
 +
===alle variablen auf openWRT-Whiterussian (freifunk-firmware) entfernen===
 +
 +
<source lang="bash">
 +
ssh router
 +
 +
cd /tmp
 +
wget http://intercity-vpn.de/firmware/broadcom/images/testing/tarball.tgz
 +
cd /
 +
tar xzf /tmp/tarball.tgz
 +
rm /tmp/tarball.tgz
 +
 +
touch /tmp/DEBUG
 +
/etc/kalua_init    # vorher evtl. noch im skript BASEDIR umbiegen, falls der tarball z.b. in der RAM-Disk liegt
 +
 +
for FILE in $( _firmware filelist ); do {
 +
        rm "$FILE"
 +
} done
 +
 +
cat >/tmp/.autorun <<EOF
 +
rm \$0; . /tmp/loader
 +
_profile unset_nvram_group
 +
_profile rebuild_cfe
 +
_hardware remap_devs
 +
_nvram set boot_wait on
 +
_nvram set commit 'alles neu macht der fruehling'
 +
rm -fR /tmp/kalua
 +
EOF
 +
 +
chmod +x /tmp/.autorun
 +
</source>
 +
 +
man kann nun im syslog mitlesen, was gemacht wird. fuer ein schoeneres syslog gibt man ein
 +
 +
<source lang="bash">
 +
killall syslogd
 +
syslogd -O /tmp/syslog -s 8
 +
tail -f /tmp/syslog
 +
</source>
 +
 +
Auf einem Geraet mit nur 8mb RAM sollte man entweder alle Dienste beenden (telnetd und init reicht zum Arbeiten) oder das landen vom WLAN-Treibers in /etc/init.d/S10boot unterbinden/auskommentieren)
 +
 +
Fertig!
 +
 +
Tags: nvram erase mtd factory defaults broadcom linksys freifunk | [[Benutzer:Fries43|fries43]] 14:38, 23. Nov. 2009 (UTC)
 +
 +
=Email mit mehreren Postfaechern einrichten=
 +
==welche Programme muessen warum und wie installiert werden==
 +
 +
Der Benutzer_A auf Maschine_A moechte Email mit <tt>mutt</tt> lesen und schreiben. <tt>Fetchmail</tt> holt die Mails aus mehreren Postfaechern ab und stellt diese automatisch (definierbaren) lokalen Benutzern zu. Die Zustellung erfolgt dabei zu einem lokal laufenden SMTP-Server, in diesem Fall <tt>exim</tt>. Die lokalen Benutzerpostfaecher sind im <tt>mbox</tt>-Format unter <tt>/var/mail/$USERNAME</tt> vorhanden. Ansonsten haengen die Mails irgendwie unter <tt>/var/spool/exim/input/</tt> fest, wobei <tt>*-H</tt> die Mailheader sind und <tt>*-D</tt> die eigentlichen Maildaten.
 +
 +
<source lang="bash">
 +
# Diagnose/Tests:
 +
Benutzer_A@box:~$ echo "Inhalt" | mail -v -s "Betreff" Benutzer_A@localhost
 +
Benutzer_A@box:~$ sudo chown Benutzer_A:users /var/mail/Benutzer_A
 +
Benutzer_A@box:~$ ln -s /var/mail/Benutzer_A Mail/posteingang
 +
</source>
 +
 +
Fertig!
 +
 +
Tags: email, exim, mutt, fetchmail | [[Benutzer:Fries43|fries43]] 09:54, 29. Aug. 2009 (UTC)
 +
 
=SSH-Login ohne Passwort eingeben=
 
=SSH-Login ohne Passwort eingeben=
 
==bequemes einloggen ohne jedesmal die Passwortabfrage ueber sich ergehen lassen zu muessen==
 
==bequemes einloggen ohne jedesmal die Passwortabfrage ueber sich ergehen lassen zu muessen==
Zeile 4: Zeile 79:
 
Der Benutzer_A auf Maschine_A moechte sich gerne als Benutzer_B an Maschine_B anmelden:
 
Der Benutzer_A auf Maschine_A moechte sich gerne als Benutzer_B an Maschine_B anmelden:
  
  Benutzer_A@Maschine_A:~$ [ -e ~/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -b 2048   # privaten key erzeugen
+
<source lang="bash">
  Benutzer_A@Maschine_A:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 22 Benutzer_B@Maschine_B'
+
  userA@pcA:~$ [ ! -e ~/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -b 2048   # wenn noch nicht da, privaten key erzeugen
 +
  userA@pcA:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 22 userB@pcB'       # oeffentlichen schluessel rueberkopieren
 +
userA@pcA:~$ ssh -i ~/.ssh/id_rsa userB@pcB                            # identitaet explizit angeben
 +
 +
userB@pcB:~$ ...have a lot of fun!
 +
</source>
  
 
Fertig!
 
Fertig!
Zeile 18: Zeile 98:
 
Gerade Fotoapparate bieten neuerdings die Moeglichkeit auch ein Video aufzunehmen. Diese werden dann als .mov gespeichert, sind richtig grosse Dateien, die sich schlecht per Mail verteilen lassen. Selbst ein hochladen zu diversen Videoportalen - damit es die lieben Verwandten anschauen koennen - wird zur Geduldsprobe. Beispiel:
 
Gerade Fotoapparate bieten neuerdings die Moeglichkeit auch ein Video aufzunehmen. Diese werden dann als .mov gespeichert, sind richtig grosse Dateien, die sich schlecht per Mail verteilen lassen. Selbst ein hochladen zu diversen Videoportalen - damit es die lieben Verwandten anschauen koennen - wird zur Geduldsprobe. Beispiel:
  
<pre>
+
<source lang="bash">
bastian@terastar:~$ ls -sh video.mov
+
bastian@terastar:~$ ls -sh video.mov
866M video.mov
+
866M video.mov
  
bastian@terastar:~$ mplayer -frames 0 -identify -vo null video.mov 2>/dev/null | grep ID_
+
bastian@terastar:~$ mplayer -frames 0 -identify -vo null video.mov 2>/dev/null | grep ID_
ID_VIDEO_ID=0
+
ID_VIDEO_ID=0
ID_AUDIO_ID=1
+
ID_AUDIO_ID=1
ID_FILENAME=video.mov
+
ID_FILENAME=video.mov
ID_DEMUXER=mov
+
ID_DEMUXER=mov
ID_VIDEO_FORMAT=jpeg
+
ID_VIDEO_FORMAT=jpeg
ID_VIDEO_BITRATE=0
+
ID_VIDEO_BITRATE=0
ID_VIDEO_WIDTH=640
+
ID_VIDEO_WIDTH=640
ID_VIDEO_HEIGHT=480
+
ID_VIDEO_HEIGHT=480
ID_VIDEO_FPS=30.000
+
ID_VIDEO_FPS=30.000
ID_VIDEO_ASPECT=0.0000
+
ID_VIDEO_ASPECT=0.0000
ID_AUDIO_FORMAT=raw  
+
ID_AUDIO_FORMAT=raw  
ID_AUDIO_BITRATE=0
+
ID_AUDIO_BITRATE=0
ID_AUDIO_RATE=8000
+
ID_AUDIO_RATE=8000
ID_AUDIO_NCH=1
+
ID_AUDIO_NCH=1
ID_LENGTH=633.00
+
ID_LENGTH=633.00
ID_VIDEO_CODEC=ffmjpeg
+
ID_VIDEO_CODEC=ffmjpeg
ID_AUDIO_BITRATE=64000
+
ID_AUDIO_BITRATE=64000
ID_AUDIO_RATE=8000
+
ID_AUDIO_RATE=8000
ID_AUDIO_NCH=1
+
ID_AUDIO_NCH=1
ID_AUDIO_CODEC=pcm
+
ID_AUDIO_CODEC=pcm
</pre>
+
</source>
  
 
Zusammenfassend:
 
Zusammenfassend:
Zeile 52: Zeile 132:
 
Da sollte also noch was gehen. Die Erfahrung sagt in etwa: 90 Minuten gute Spielfilmqualitaet sind ca. 700 Megabyte. Ergo sollten in unserem Fall deutlich weniger als 7,5 Megabyte / Minute moeglich sein. Folgendes Anleitung kann man einfach auf der Kommandozeile copy&pasten.
 
Da sollte also noch was gehen. Die Erfahrung sagt in etwa: 90 Minuten gute Spielfilmqualitaet sind ca. 700 Megabyte. Ergo sollten in unserem Fall deutlich weniger als 7,5 Megabyte / Minute moeglich sein. Folgendes Anleitung kann man einfach auf der Kommandozeile copy&pasten.
  
<pre>
+
<source lang="bash">
# dateiname festlegen und qualitaet festlegen
+
# dateiname festlegen und qualitaet festlegen
FILE="/pfad/zum/movie.mov"
+
FILE="/pfad/zum/movie.mov"
QUALI="normal"                  # niedrig,normal,gut
+
QUALI="normal"                  # niedrig,normal,gut
  
# ab jetzt nur noch copy&paste
+
# ab jetzt nur noch copy&paste
# Parameter fuer Qualitaet, etc. ermitteln
+
# Parameter fuer Qualitaet, etc. ermitteln
  if [ "$QUALI" = "niedrig" ]; then
+
  if [ "$QUALI" = "niedrig" ]; then
    BITRATE=400
+
      BITRATE=400
    FPS=10
+
      FPS=10
elif [ "$QUALI" = "normal" ]; then
+
elif [ "$QUALI" = "normal" ]; then
    BITRATE=700
+
      BITRATE=700
    FPS=20
+
      FPS=20
else
+
else
    BITRATE=1000
+
      BITRATE=1000
    FPS=25
+
      FPS=25
fi
+
fi
  
if [ "$( file -bi $FILE )" = "video/quicktime" ]; then
+
if [ "$( file -bi $FILE )" = "video/quicktime" ]; then
    TYP="mov"
+
      TYP="mov"
  
# variablen in die shell verfuegbar machen
+
# variablen in die shell verfuegbar machen
eval $( mplayer -frames 0 -identify -vo null "$FILE" 2>/dev/null | grep ID_ )
+
eval $( mplayer -frames 0 -identify -vo null "$FILE" 2>/dev/null | grep ID_ )
  
# optionen: hoehen/seitenverhaeltnis erzwingen
+
# optionen: hoehen/seitenverhaeltnis erzwingen
O1="-aspect $( awk -v w=$ID_VIDEO_WIDTH -v h=$ID_VIDEO_HEIGHT 'BEGIN{ print w/h }' )"
+
O1="-aspect $( awk -v w=$ID_VIDEO_WIDTH -v h=$ID_VIDEO_HEIGHT 'BEGIN{ print w/h }' )"
  
# optionen: aufloesung erzwingen
+
# optionen: aufloesung erzwingen
O2="-vf scale=${ID_VIDEO_WIDTH}:${ID_VIDEO_HEIGHT},harddup"
+
O2="-vf scale=${ID_VIDEO_WIDTH}:${ID_VIDEO_HEIGHT},harddup"
  
# h264-optionen - erster Durchlauf
+
# h264-optionen - erster Durchlauf
O3a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=1:turbo=2:frameref=1:bframes=3:"
+
O3a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=1:turbo=2:frameref=1:bframes=3:"
O3b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=1:mixed_refs:nodct_decimate"
+
O3b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=1:mixed_refs:nodct_decimate"
O3c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS"
+
O3c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS"
O3="$O3a$O3b$O3c"
+
O3="$O3a$O3b$O3c"
  
# h264-optionen - zweiter Durchlauf
+
# h264-optionen - zweiter Durchlauf
O4a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=2:frameref=5:bframes=3:"
+
O4a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=2:frameref=5:bframes=3:"
O4b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=6:mixed_refs:nodct_decimate"
+
O4b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=6:mixed_refs:nodct_decimate"
O4c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS"
+
O4c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS"
O4="$O4a$O4b$O4c"
+
O4="$O4a$O4b$O4c"
  
# in DixX /mp2
+
# in DixX /mp2
OV="-ovc lavc -ffourcc DX50"
+
OV="-ovc lavc -ffourcc DX50"
OA="-oac lavc"
+
OA="-oac lavc"
mencoder "$FILE" $OV $OA -o "${FILE}.dixv"
+
mencoder "$FILE" $OV $OA -o "${FILE}.dixv"
  
# in DivX / faac
+
# in DivX / faac
OV="-ovc lavc -ffourcc DX50"
+
OV="-ovc lavc -ffourcc DX50"
OA="oac faac -faacopts br=64:object=2 -channels 2 -srate 22000"
+
OA="oac faac -faacopts br=64:object=2 -channels 2 -srate 22000"
mencoder "$FILE" $OV $OA -o "${FILE}.dixv"
+
mencoder "$FILE" $OV $OA -o "${FILE}.dixv"
</pre>
+
</source>
  
 
Tags: convert, mencoder, ffmpeg, mov, mpeg4, h264  | 20:01, 8. Mai 2008 (CEST)
 
Tags: convert, mencoder, ffmpeg, mov, mpeg4, h264  | 20:01, 8. Mai 2008 (CEST)

Aktuelle Version vom 26. Mai 2010, 14:42 Uhr

ash optimierungen

Konstrukte die das gleiche machen, aber sich in der Geschwindigkeit unterscheiden

 #!/bin/sh
 todo
time script.sh


Tags: bash, ash, speedup, optimize, script, faster | fries43 15:50, 31. Jan. 2010 (UTC)

NV-RAM-Variablen loeschen

alle variablen auf openWRT-Whiterussian (freifunk-firmware) entfernen

 ssh router

 cd /tmp
 wget http://intercity-vpn.de/firmware/broadcom/images/testing/tarball.tgz
 cd /
 tar xzf /tmp/tarball.tgz
 rm /tmp/tarball.tgz

 touch /tmp/DEBUG
 /etc/kalua_init    # vorher evtl. noch im skript BASEDIR umbiegen, falls der tarball z.b. in der RAM-Disk liegt

 for FILE in $( _firmware filelist ); do {
         rm "$FILE"
 } done

 cat >/tmp/.autorun <<EOF
 rm \$0; . /tmp/loader
 _profile unset_nvram_group
 _profile rebuild_cfe
 _hardware remap_devs
 _nvram set boot_wait on
 _nvram set commit 'alles neu macht der fruehling'
 rm -fR /tmp/kalua
 EOF

 chmod +x /tmp/.autorun

man kann nun im syslog mitlesen, was gemacht wird. fuer ein schoeneres syslog gibt man ein

 killall syslogd
 syslogd -O /tmp/syslog -s 8
 tail -f /tmp/syslog

Auf einem Geraet mit nur 8mb RAM sollte man entweder alle Dienste beenden (telnetd und init reicht zum Arbeiten) oder das landen vom WLAN-Treibers in /etc/init.d/S10boot unterbinden/auskommentieren)

Fertig!

Tags: nvram erase mtd factory defaults broadcom linksys freifunk | fries43 14:38, 23. Nov. 2009 (UTC)

Email mit mehreren Postfaechern einrichten

welche Programme muessen warum und wie installiert werden

Der Benutzer_A auf Maschine_A moechte Email mit mutt lesen und schreiben. Fetchmail holt die Mails aus mehreren Postfaechern ab und stellt diese automatisch (definierbaren) lokalen Benutzern zu. Die Zustellung erfolgt dabei zu einem lokal laufenden SMTP-Server, in diesem Fall exim. Die lokalen Benutzerpostfaecher sind im mbox-Format unter /var/mail/$USERNAME vorhanden. Ansonsten haengen die Mails irgendwie unter /var/spool/exim/input/ fest, wobei *-H die Mailheader sind und *-D die eigentlichen Maildaten.

 # Diagnose/Tests:
 Benutzer_A@box:~$ echo "Inhalt" | mail -v -s "Betreff" Benutzer_A@localhost
 Benutzer_A@box:~$ sudo chown Benutzer_A:users /var/mail/Benutzer_A
 Benutzer_A@box:~$ ln -s /var/mail/Benutzer_A Mail/posteingang

Fertig!

Tags: email, exim, mutt, fetchmail | fries43 09:54, 29. Aug. 2009 (UTC)

SSH-Login ohne Passwort eingeben

bequemes einloggen ohne jedesmal die Passwortabfrage ueber sich ergehen lassen zu muessen

Der Benutzer_A auf Maschine_A moechte sich gerne als Benutzer_B an Maschine_B anmelden:

 userA@pcA:~$ [ ! -e ~/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -b 2048   # wenn noch nicht da, privaten key erzeugen
 userA@pcA:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 22 userB@pcB'        # oeffentlichen schluessel rueberkopieren
 userA@pcA:~$ ssh -i ~/.ssh/id_rsa userB@pcB                            # identitaet explizit angeben
 
 userB@pcB:~$ ...have a lot of fun!

Fertig!

Tags: SSH, ohne Passwort, public key authorization, port, login, password, ssh-copy-id | fries43 22:04, 7. Nov. 2008 (UTC)

.mov-2-mpeg4

kompatibles konvertieren von Videodaten: .mov in mpeg4 / h.264

Dieser Artikel ist noch nicht fertig

Gerade Fotoapparate bieten neuerdings die Moeglichkeit auch ein Video aufzunehmen. Diese werden dann als .mov gespeichert, sind richtig grosse Dateien, die sich schlecht per Mail verteilen lassen. Selbst ein hochladen zu diversen Videoportalen - damit es die lieben Verwandten anschauen koennen - wird zur Geduldsprobe. Beispiel:

 bastian@terastar:~$ ls -sh video.mov
 866M video.mov

 bastian@terastar:~$ mplayer -frames 0 -identify -vo null video.mov 2>/dev/null | grep ID_
 ID_VIDEO_ID=0
 ID_AUDIO_ID=1
 ID_FILENAME=video.mov
 ID_DEMUXER=mov
 ID_VIDEO_FORMAT=jpeg
 ID_VIDEO_BITRATE=0
 ID_VIDEO_WIDTH=640
 ID_VIDEO_HEIGHT=480
 ID_VIDEO_FPS=30.000
 ID_VIDEO_ASPECT=0.0000
 ID_AUDIO_FORMAT=raw 
 ID_AUDIO_BITRATE=0
 ID_AUDIO_RATE=8000
 ID_AUDIO_NCH=1
 ID_LENGTH=633.00
 ID_VIDEO_CODEC=ffmjpeg
 ID_AUDIO_BITRATE=64000
 ID_AUDIO_RATE=8000
 ID_AUDIO_NCH=1
 ID_AUDIO_CODEC=pcm

Zusammenfassend:

  • 850 Megabyte und
  • gerade mal etwas ueber 10 Minuten lang
  • Audiospur unkomprimiert

Da sollte also noch was gehen. Die Erfahrung sagt in etwa: 90 Minuten gute Spielfilmqualitaet sind ca. 700 Megabyte. Ergo sollten in unserem Fall deutlich weniger als 7,5 Megabyte / Minute moeglich sein. Folgendes Anleitung kann man einfach auf der Kommandozeile copy&pasten.

 # dateiname festlegen und qualitaet festlegen
 FILE="/pfad/zum/movie.mov"
 QUALI="normal"                  # niedrig,normal,gut

 # ab jetzt nur noch copy&paste
 # Parameter fuer Qualitaet, etc. ermitteln
   if [ "$QUALI" = "niedrig" ]; then
      BITRATE=400
      FPS=10
 elif [ "$QUALI" = "normal" ]; then
      BITRATE=700
      FPS=20
 else
      BITRATE=1000
      FPS=25
 fi

 if [ "$( file -bi $FILE )" = "video/quicktime" ]; then
      TYP="mov"

 # variablen in die shell verfuegbar machen
 eval $( mplayer -frames 0 -identify -vo null "$FILE" 2>/dev/null | grep ID_ )

 # optionen: hoehen/seitenverhaeltnis erzwingen
 O1="-aspect $( awk -v w=$ID_VIDEO_WIDTH -v h=$ID_VIDEO_HEIGHT 'BEGIN{ print w/h }' )"

 # optionen: aufloesung erzwingen
 O2="-vf scale=${ID_VIDEO_WIDTH}:${ID_VIDEO_HEIGHT},harddup"

 # h264-optionen - erster Durchlauf
 O3a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=1:turbo=2:frameref=1:bframes=3:"
 O3b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=1:mixed_refs:nodct_decimate"
 O3c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS"
 O3="$O3a$O3b$O3c"

 # h264-optionen - zweiter Durchlauf
 O4a="-ovc x264 -x264encopts bitrate=$BITRATE:threads=auto:pass=2:frameref=5:bframes=3:"
 O4b="nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=6:mixed_refs:nodct_decimate"
 O4c=" -nosound -ofps $FPS -noskip -of rawvideo -o /dev/null mf://$FILE -mf fps=$FPS"
 O4="$O4a$O4b$O4c"

 # in DixX /mp2
 OV="-ovc lavc -ffourcc DX50"
 OA="-oac lavc"
 mencoder "$FILE" $OV $OA -o "${FILE}.dixv"

 # in DivX / faac
 OV="-ovc lavc -ffourcc DX50"
 OA="oac faac -faacopts br=64:object=2 -channels 2 -srate 22000"
 mencoder "$FILE" $OV $OA -o "${FILE}.dixv"

Tags: convert, mencoder, ffmpeg, mov, mpeg4, h264 | 20:01, 8. Mai 2008 (CEST)