<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Liomans Blog &#187; bash</title>
	<atom:link href="http://www.lioman.de/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lioman.de</link>
	<description>42 ist die Antwort - aber wie lautet die Frage?</description>
	<lastBuildDate>Fri, 11 May 2012 09:45:30 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Skript: Aktuelle Version von Chromium runterladen</title>
		<link>http://www.lioman.de/2011/11/skript-aktuelle-version-von-chromium-runterladen/</link>
		<comments>http://www.lioman.de/2011/11/skript-aktuelle-version-von-chromium-runterladen/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 13:00:14 +0000</pubDate>
		<dc:creator>Lioman</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Ubuntuusers Planet]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Chromium]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Skript]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.lioman.de/?p=3973</guid>
		<description><![CDATA[<p>In der Uni habe ich das Problem, dass auf den Rechnern nicht die aktuellsten Versionen aller Programme installiert sind. Bei manchen macht das nicht so viel aus, bei anderen ist das nicht so gut, denn bestimmte Funktionen bieten nur die &#8230; <a href="http://www.lioman.de/2011/11/skript-aktuelle-version-von-chromium-runterladen/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>Zum Blog: <a href=http://www.lioman.de/?utm_source=feed&utm_medium=feed&utm_campaign=feed>www.lioman.de </a>
<img src="http://lioman.bplaced.net/piwik/piwik.php?idsite=1&rec=1action_name=Feed" style="border:0" alt="" />
</p>]]></description>
			<content:encoded><![CDATA[<p>In der Uni habe ich das Problem, dass auf den Rechnern nicht die aktuellsten Versionen aller Programme installiert sind. Bei manchen macht das nicht so viel aus, bei anderen ist das nicht so gut, denn bestimmte Funktionen bieten nur die aktuelleren Programme.</p>
<p><a title="Chromium Projekt" href="http://www.chromium.org">Chromium</a> ist da so ein Fall (Sync Funktioniert z.B.nicht) und da ich, auf den Uni-Rechnern mangels Rechten nicht einfach ein Programm installieren kann, habe ich mir ein kleines Skript gebastelt, dass einen aktuellen Snapshot runterlädt und dann die neuste Version ausführt.</p>
<pre>#!/bin/bash
#Get the latest Chromium-Version
latest=`curl http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux/LAST_CHANGE`
#Download Chromium
wget --progress=bar:force -O /tmp/chrome-linux.zip http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux/$latest/chrome-linux.zip 2&gt;&amp;1 | zenity --title="Download Chromium-Version $latest!" --progress --auto-close --auto-kill --width=400
#Unzip
#Exclude Erstellen
exclude=`unzip -Z -1 /tmp/chrome-linux.zip |grep -E 'locales.[^d]+[^e]*pak'| tr "\n" " "`
#Menge der Dateien bestimmen
filecount=`unzip -l /tmp/chrome-linux.zip |grep -v -E 'locales.[^d]+[^e]*pak'|tail -n 1|tr -s " " |cut -d " "  -f 2`
#Lösche alte Version
rm -R $HOME/chrome-linux/
unzip -qq -o /tmp/chrome-linux.zip -d /$HOME/ -x $exclude &amp;
exec 3&gt; &gt;(zenity --progress --title="Entpacken" --percentage=0 --auto-close --width=400)
while [ `ps -A |grep -c unzip` = "1" ];
do
count=$((`ls -R /$HOME/chrome-linux/ |wc -w`-4))
Prozent=$((($count*100/$filecount)))
echo "$Prozent" &gt;&amp;3
done
killall zenity
#Aufräumen
rm -R /tmp/chrome-linux*
#Öffne neue Version
cd $HOME/chrome-linux/
./chrome-wrapper --allow-outdated-plugins &amp;
exit 0</pre>
<p>Dies ist sicher nicht die eleganteste Lösung, aber das Skript gibt aus was es gerade tut und macht das was es soll zufriedenstellend. Der Umweg über das /tmp Verzeichnis ist nötig, weil die Quotas nicht gerade großzügig bemessen sind. Hat man eh eine aktuelle Version der diversen Plugins (Flash) auf dem Rechner oder Sicherheitsbedenken sollte man beim Aufruf von Chromium das <em>&#8211;allow-outdated-plugins </em>entfernen.</p>
<p><strong>Update:</strong> Habe das Skript nochmal deutlich aufgeräumt und nun ist es nicht nur kürzer (27 statt 42 Zeilen), sondern auch deutlich schneller. Statt die Dateien erst zu entpacken und dann ohne die Sprachpakete zu verschieben entpacke nun direkt in den Zielordner ohne die überflüssigen Dateien mitzuentpacken. Dazu habe ich ein bisschen mit Regulären Ausdrücken rumexpiremntieren müssen. Ich konnte mich bisher mit denen noch nicht anfreunden und so entwischt mir auch jetzt immer noch eine Datei. Nicht nur <em>&#8220;de.pak&#8221;</em> wird entpackt sondern auch <em>&#8220;da.pak&#8221;</em>. Hat jemand Verbesserungsvorschläge?
<ul class='related_post'>
<li><a href='http://www.lioman.de/2012/04/virtualbox-virtuelle-maschine-startet-nicht/' title='VirtualBox: Virtuelle Maschine startet nicht'>VirtualBox: Virtuelle Maschine startet nicht</a></li>
<li><a href='http://www.lioman.de/2012/02/hallo-planet/' title='Hallo Planet!'>Hallo Planet!</a></li>
<li><a href='http://www.lioman.de/2012/01/ubuntu-tv-canonical-zeigt-die-staerke-von-unity/' title='Ubuntu TV &#8211; Canonical zeigt die Stärke von Unity'>Ubuntu TV &#8211; Canonical zeigt die Stärke von Unity</a></li>
<li><a href='http://www.lioman.de/2011/12/oracle-java-wird-entfernt/' title='Oracle Java wird entfernt!'>Oracle Java wird entfernt!</a></li>
</ul>
<p>Zum Blog: <a href=http://www.lioman.de/?utm_source=feed&utm_medium=feed&utm_campaign=feed>www.lioman.de </a>
<img src="http://lioman.bplaced.net/piwik/piwik.php?idsite=1&rec=1action_name=Feed" style="border:0" alt="" />
</p>]]></content:encoded>
			<wfw:commentRss>http://www.lioman.de/2011/11/skript-aktuelle-version-von-chromium-runterladen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script: Videos in XVID encodieren</title>
		<link>http://www.lioman.de/2009/11/script-videos-in-xvid-encodieren/</link>
		<comments>http://www.lioman.de/2009/11/script-videos-in-xvid-encodieren/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 17:40:35 +0000</pubDate>
		<dc:creator>Lioman</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PC und Technik]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[encodieren]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[videocodecs]]></category>
		<category><![CDATA[xvid]]></category>

		<guid isPermaLink="false">http://www.lioman.de/?p=1068</guid>
		<description><![CDATA[<p>Platzsparende Videocodecs wie x264 verpackt in einem MP4-Container bieten hochqualitative Videos bei kleiner Größe. So ist es nicht verwunderlich, dass Videos mit diesem Format im Netz weit verbreitet sind. Das Problem dabei: Viele Standaloneplayer können es nicht lesen. Man muss &#8230; <a href="http://www.lioman.de/2009/11/script-videos-in-xvid-encodieren/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>Zum Blog: <a href=http://www.lioman.de/?utm_source=feed&utm_medium=feed&utm_campaign=feed>www.lioman.de </a>
<img src="http://lioman.bplaced.net/piwik/piwik.php?idsite=1&rec=1action_name=Feed" style="border:0" alt="" />
</p>]]></description>
			<content:encoded><![CDATA[<p><em><strong>Platzsparende Videocodecs wie </strong></em><a id="aptureLink_ynOQW1qJww" href="http://de.wikipedia.org/wiki/X264">x264</a><em><strong> verpackt in einem MP4-Container bieten hochqualitative Videos bei kleiner Größe. So ist es nicht verwunderlich, dass Videos mit diesem Format im Netz weit verbreitet sind.  Das Problem dabei: Viele Standaloneplayer können es nicht lesen. Man muss also umencodieren.</strong></em></p>
<p>Da ich immer mal wieder Videos in verschiedensten Formaten aus dem Netz lade, sie aber mit dem DVD-Recorder anschauen möchte, habe ich ein kleines Script geschrieben, dass alles automatisch erledigt.</p>
<p>Der Player kann wie die meisten XVID/DIVX &#8211; Avicontainer lesen. Es sollen also alle Videos in dieses Format überführt werden. Das Problem: Es gibt viele verschiedene Quellen und Qualitätsstufen. HDTV-Videos wie <a title="HOME" href="http://www.home-2009.com/" target="_blank">HOME </a>über <a title="Torrent" href="http://www.legaltorrents.com/torrents/547-home-2009" target="_blank">Legaltorrents.com</a> (Sehr groß, mp4, aac), Youtube/ Vimeo videos (kleine flv, zT. HQ-Videos/mp4) , Streammitschnitte (unterschiedlicher Ausführung) und natürlich TV-Mitschnitte in DVD-Qualität. Die verschieden Quellen sollen alle jeweils so optimal wie möglich verarbeitet werden und von Hand ist es viel zu viel Arbeit.</p>
<p>Ich möchte als Ergebnis eine möglichst hohe Qualität haben, bei vernünftiger Videogröße und natürlich absoluter Kompatibilität.</p>
<p>Dazu folgende Erkenntnis: Das Ergebnis wird nie besser als die Quelle werden. Es macht also keinen Sinn aus einem kleinen *.flv-Video ein 1280&#215;720-Video mit ac3-Sound und einer Bitrate von 1000 zu machen. Andererseits kann der Player nicht mit zu Großen Bildern umgehen und ich will ja auch Platz sparen.</p>
<p>Was macht das Script:</p>
<ol>
<li>Quelle prüfen</li>
<li>Qualität festsetzen<br />
nicht besser als Quelle aber höchstens 720 in der Breite bei einer Bitrate von 750</li>
<li>2-pass-Encodieren und danach aufräumen</li>
</ol>
<p>Wie nutzt man das Script?</p>
<ol>
<li>runterladen</li>
<li>entpacken</li>
<li>
<pre>chmod +x #(Ausfuehrbar machen)</pre>
</li>
<li><span style="font-size: small;">
<pre>./Video2xvid video1 video2 video3</pre>
<p></span></li>
<li>Das Script Encodiert alle Videos nacheinander</li>
</ol>
<p>Über Vorschläge zur verbesserung des Scriptes oder Fragen nach Hilfe freue ich mich.</p>
<p>Nun das Script, ich hoffe ich habe es ausreichend kommentiert:</p>
<p>(Weiter unten nochmal als Download)</p>
<pre>#!/bin/bash
#Lösche logdatei um Störungen zu vermeiden
rm -v divx2pass.log
Gesamtdauer=0
while [ ${1} != '' ]
  do
#Bestimme Breite
BREITE=`mplayer -identify \$1\ -ao null -vo null -frames 0 2&gt;/dev/null | grep ^ID_VIDEO_WIDTH | cut -c16-`; echo \Orginalbreite= $BREITE\
if [ $BREITE -le 720 ]; then
VBREITE=$BREITE
else
VBREITE=720
fi

# Bestimme Audio-Codec
ACODEC=`mplayer -identify \$1\ -ao null -vo null -frames 0 2&gt;/dev/null | grep ^ID_AUDIO_CODEC | cut -c16-`; echo \Audiocodec= $ACODEC\
if [ \$ACODEC\ == \a52\ -o \$ACODEC\ == \faad\ ]; then
AOPTS=\lavc -lavcopts acodec=ac3 -af volnorm=1\
else
AOPTS=\mp3lame -lameopts abr:br=196 -af lavcresample=44100,volnorm=1\
fi

#Bestime Bitrate
RATE=`mplayer -identify \$1\ -ao null -vo null -frames 0 2&gt;/dev/null | grep ^ID_VIDEO_BITRATE | cut -c18-`;
echo \Orginalbitrate= $RATE\
if [ $RATE == 0 ]; then
	BRATE=750
	else
	if [ $RATE -le 800000 ]; then
		BRATE=$((RATE/1000))
		else
		BRATE=750
	fi
fi

# Bestimme Namen
NAME=`echo \$1\ | sed 's/\.[^\.]*$//'`; echo $NAME

#Bestimme Startzeit
START=$(date +\%s\);

#Starte Codieren
echo \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
echo \Encodiere $1 in $NAME-xvid.avi\
echo
echo \Beginne mit erstem Durchgang\
echo
echo \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
mencoder  -ffourcc XVID -oac $AOPTS -ovc xvid -xvidencopts pass=1:trellis:hq_ac -vf scale=$VBREITE:-3 -o /dev/null $1

echo \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
echo \Nun folgt Durchgang Nummer Zwei\
echo \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
mencoder  -ffourcc XVID -oac $AOPTS -af lavcresample=44100,volnorm=1 -ovc xvid -xvidencopts pass=2:bitrate=$BRATE:hq_ac:trellis:chroma_opt:vhq=2:bvhq=1:quant_type=mpeg -vf scale=$VBREITE:-3 -o $NAME-xvid.avi $1

#Berechne Dauer
ENDE=$(date +\%s\);
DAUER=$(((ENDE-START)/60));
echo \************************************\
echo \**Encodieren in XVID abgeschlossen**\
echo \**                                **\
echo \** es dauerte ca. $DAUER Minuten     **\
echo \************************************\
echo
Gesamtdauer=$((Gesamtdauer+DAUER))

# Aufräumen
echo -e \Logdatei wird gelöscht\
rm -v divx2pass.log

# Auswahl anzeigen
echo \Soll Orginaldatei gelöscht werden [y/n]\
echo \Nach 15 Sekunden ohne Eingabe wird ohne Löschen beendet\
read -t 15 -n 1 TASTE
if [ \$TASTE\ == \y\ ] ; then
echo \Lösche $1\
rm -f $1
shift
else
shift
fi
done
# Beenden
echo \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
echo
echo \Encodieren beendet\
echo
echo \Gesamtdauer ca. $Gesamtdauer Minuten\
echo \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\</pre>
<p>Und hier die Datei zum Download: <a href="http://www.lioman.de/wp-content/uploads/Video2xvid.tar.gz">Video2xvid.tar.gz</a>
<ul class='related_post'>
<li><a href='http://www.lioman.de/2011/01/skript-dvdvideo-in-xvid-umwandeln/' title='Skript: DVD/Video in XVID umwandeln'>Skript: DVD/Video in XVID umwandeln</a></li>
<li><a href='http://www.lioman.de/2011/11/skript-aktuelle-version-von-chromium-runterladen/' title='Skript: Aktuelle Version von Chromium runterladen'>Skript: Aktuelle Version von Chromium runterladen</a></li>
<li><a href='http://www.lioman.de/2011/04/video-20-jahre-linux/' title='Video: 20 Jahre Linux'>Video: 20 Jahre Linux</a></li>
<li><a href='http://www.lioman.de/2011/01/skript-mp3-in-ogg-konvertieren/' title='Skript: mp3 in ogg konvertieren'>Skript: mp3 in ogg konvertieren</a></li>
</ul>
<p>Zum Blog: <a href=http://www.lioman.de/?utm_source=feed&utm_medium=feed&utm_campaign=feed>www.lioman.de </a>
<img src="http://lioman.bplaced.net/piwik/piwik.php?idsite=1&rec=1action_name=Feed" style="border:0" alt="" />
</p>]]></content:encoded>
			<wfw:commentRss>http://www.lioman.de/2009/11/script-videos-in-xvid-encodieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

