<?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>Anthony Dahanne&#039;s blog &#187; ubuntu</title>
	<atom:link href="http://blog.dahanne.net/category/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dahanne.net</link>
	<description>Open Source Software, Java, Android, Continuous Integration</description>
	<lastBuildDate>Fri, 20 Jan 2012 02:32:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Sécuriser son serveur dédié : quelques conseils</title>
		<link>http://blog.dahanne.net/2011/11/19/securiser-son-serveur-dedie-quelques-conseils/</link>
		<comments>http://blog.dahanne.net/2011/11/19/securiser-son-serveur-dedie-quelques-conseils/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 16:03:35 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[apache2]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/?p=571</guid>
		<description><![CDATA[<p>Assomption avant de commencer : Bien entendu, vous êtes à jour des derniers correctifs de sécurité de l&#8217;ensemble de vos services&#8230;</p> <p>En lisant un article faisant référence à un serveur mal sécurisé ; j&#8217;ai été pris de quelques doutes : et si mon serveur dédié était lui aussi mal sécurisé ? Étant développeur et adepte [...]]]></description>
			<content:encoded><![CDATA[<p><em>Assomption avant de commencer</em> : Bien entendu, <strong>vous êtes à jour des derniers correctifs de sécurité de l&#8217;ensemble de vos services&#8230;</strong></p>
<p>En lisant un article <a href="http://reflets.info/doxump-ca-sent-mauvais/">faisant référence à un serveur mal sécurisé</a> ; j&#8217;ai été pris de quelques doutes : et si mon serveur dédié était lui aussi mal sécurisé ?<br />
Étant développeur et adepte de l&#8217;auto hébergement (oui je ne suis pas un grand fan des services hébergés chez les géants du net avec leurs clauses de confidentialité obscures&#8230;) je fais évoluer mon serveur dédié (services qui tournent dessus) au rythme de mes besoins&#8230; ce qui fait que la sécurité passe souvent au second plan&#8230;<br />
Et rien de tel que de jeter un coup d’œil à la sécurisation de ces services de temps en temps&#8230;</p>
<h3>Audit rapide et efficace</h3>
<p>On commence avec nmap, avec les options qui vont bien :</p>
<pre class="bash">sudo nmap -A mon.serveurdedie.fr</pre>
<p>On peut alors commencer à l&#8217;analyse du résultat, et à remédier aux problèmes.</p>
<h3>DNS et Bind</h3>
<p>Dans le rapport obtenu par nmap, si vous voyez :</p>
<pre>| dns-zone-transfer:</pre>
<p>et ensuite la liste de vos sous domaines; méfiance, cela veut dire que quiconque peut lister vos sous domaines; pas forcément une bonne idée si certains d&#8217;entre eux sont là pour des tests ou pour des services non publics&#8230;</p>
<h4>Les solutions</h4>
<pre>Rendez vous dans votre fichier de configuration de bind, /etc/bind/named.conf.options, et ajouter les options suivantes :
 allow-transfer { x.x.x.x; }; --&gt; uniquement donner accès aux informations détaillées des zones à cette IP (votre dns secondaire)
 version "Ma version"; --&gt; pourrait derouter certaines attaques en offuscant la version de Bind; mais comme disent certains, l'obfuscation est rarement une bonne méthode de sécurisation...
 fetch-glue no; --&gt; défendre votre serveur dns aux attaques de type déni de service
 recursion no; --&gt; défendre votre serveur dns aux attaques de type déni de service</pre>
<p>Ces informations sont issues d&#8217;un <a href="http://www.techrepublic.com/article/secure-bind-with-these-tips/5716787">article de TechRepublic</a> , et n&#8217;hésitez pas à vérifier votre configuration avec <a href="http://www.zonecheck.fr/">zonecheck</a></p>
<h3>HTTP et Apache</h3>
<p>Dans le rapport obtenu par nmap, si vous voyez :</p>
<pre>80/tcp  open     http         Apache httpd 2.2.9 ((Debian) DAV/2 SVN/1.5.1 PHP/5.2.6-1+lenny13 with Suhosin-Patch mod_wsgi/2.5 Python/2.5.2)</pre>
<p>Et bien cela signifie que votre serveur est très bavard&#8230;</p>
<h4>La solution</h4>
<p>Sur Ubuntu, dirigez vous vers /etc/apache2/conf.d/security et éditez :</p>
<pre>ServerTokens Prod</pre>
<pre>ServerSignature Off</pre>
<pre>TraceEnable Off</pre>
<p>Si vous utilisez PHP, faites aussi un tour du côté de  /etc/php5/apache2/php.ini</p>
<pre>expose_php = Off</pre>
<p>Encore une fois, l’offuscation n&#8217;est pas une méthode de sécurisation en soit, mais moins les potentiels attaquants en savent, mieux c&#8217;est&#8230;<br />
Ces informations sont issues de <a href="http://www.debianadmin.com/apache-tipshide-apache-information-php-software-version.html">DebianAdmin</a></p>
<h3>SSH et OpenSSH</h3>
<p>Pour l&#8217;instant je ne peux que conseiller de lire cet article : <a href="http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html">http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html </a></p>
<p>à suivre&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2011/11/19/securiser-son-serveur-dedie-quelques-conseils/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Run UI tests on a headless Jenkins / Hudson Continuous Integration server running Ubuntu</title>
		<link>http://blog.dahanne.net/2011/07/18/run-ui-tests-on-a-headless-jenkins-hudson-continuous-integration-server-running-ubuntu/</link>
		<comments>http://blog.dahanne.net/2011/07/18/run-ui-tests-on-a-headless-jenkins-hudson-continuous-integration-server-running-ubuntu/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 03:43:59 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[continuous integration hudson jenkins]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tycho]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/?p=535</guid>
		<description><![CDATA[<p>If you want to set up a ci build, running ui tests, on a box without any windowing system, you need to pay attention to a few details, here are some of  them :</p> Set up your ubuntu box and Jenkins/Hudson <p>On your ubuntu box :</p> <p># apt-get install vnc4server fluxbox</p> <p>Vnc4server is a free [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to set up a ci build, running ui tests, on a box without any windowing system, you need to pay attention to a few details, here are some of  them :</p>
<h3>Set up your ubuntu box and Jenkins/Hudson</h3>
<p>On your ubuntu box :</p>
<p><code># apt-get install vnc4server fluxbox</code></p>
<p>Vnc4server is a free vnc server, that will act as your X environment, and fluxbox is a tiny window manager; more than enough for UI testing.</p>
<p>In Jenkins / Hudson, Manage Jenkins -&gt; Plugins -&gt; Install new plugins, choose the <a href="https://wiki.jenkins-ci.org/display/JENKINS/Xvnc+Plugin">xvnc plugin </a></p>
<p><a href="http://blog.dahanne.net/wp-content/uploads/S%C3%A9lection_001.png"><img class="alignnone size-medium wp-image-542" title="xvnc plugin" src="http://blog.dahanne.net/wp-content/uploads/S%C3%A9lection_001-300x38.png" alt="" width="300" height="38" /></a></p>
<div>In your job that launches UI tests (in my case it was Eclipse Equinox UI tests launched by a tycho build), tick the box &laquo;&nbsp;Run xvnc during build&nbsp;&raquo;</div>
<div>Now launch your job, you will run into this problem :</div>
<pre class="bash">Starting xvnc [workspace] $ vncserver :10 You will require a password to access your desktops. getpassword error: Invalid argument Password:Starting xvnc [workspace]</pre>
<div>etc&#8230; until vncserver :13</div>
<div>It is because you need to launch vncserver interactively, at least once, to setup a password; connect to your ubuntu box and:</div>
<pre class="bash"># su jenkins
$ vncserver :10You will require a password to access your desktops.

Password:
Verify:
Password too long - only the first 8 characters will be used
xauth:  creating new authority file /var/lib/jenkins/.Xauthority

New 'host:10 (jenkins)' desktop is host:10

Creating default startup script /var/lib/jenkins/.vnc/xstartup
Starting applications specified in /var/lib/jenkins/.vnc/xstartup
Log file is /var/lib/jenkins/.vnc/host:10.log</pre>
<div>
<div>Once this is done, re launch your job :</div>
<pre class="bash">[workspace] $ vncserver :14

New 'host:14 (jenkins)' desktop is host:14 Starting applications specified in /var/lib/jenkins/.vnc/xstartup Log file is /var/lib/jenkins/.vnc/host:14.log</pre>
<div>and your build goes on, able to create a UI during the tests !</div>
</div>
<h3>Have a look at the tested UI while the tests are running</h3>
<p>This can be very useful whenever your UI gets stuck (waiting on a dialog to be closed &#8230;, in my case I run into the issue of launching an eclipse runtime, and a plugin, Google ADT, was asking to confirm whether or not I wanted to upload usage data&#8211; hopefully only the first time) during the tests.</p>
<div>To do so, you first have to know what is the port xvnc is listening to :</div>
<pre class="bash"># ps aux |grep "vnc"
jenkins  29591  0.0  0.7  33192 14104 ?        S    21:10   0:00 Xvnc4 :14 -desktop host:14 (jenkins) -auth /var/lib/jenkins/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 30000 -rfbauth /var/lib/jenkins/.vnc/passwd -rfbport 5914 -pn -fp /usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/Speedo/,/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/,/usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb</pre>
<p>OK, looks like xvnc is listening on port 5914 in this case.<br />
You can then use a vnc viewer (on ubuntu, vinagre is a good choice) of your choice to connect to your ubuntu box on port 5914.<br />
If the ubuntu box has firewall rules impeding you to connect to 5914, then set up a ssh tunnel :</p>
<p><code>$ ssh -L 5914:localhost:5914 anthony@ubuntubox</code><br />
then connect your vnc viewer to localhost:5914 , and the magic begins !</p>
<p><a href="http://blog.dahanne.net/wp-content/uploads/S%C3%A9lection_002.png"><img class="alignnone size-medium wp-image-543" title="Seeing the UI tested in Hudson /  Jenkins through vnc" src="http://blog.dahanne.net/wp-content/uploads/S%C3%A9lection_002-215x300.png" alt="" width="215" height="300" /></a></p>
<p>&nbsp;</p>
<h3>A concrete example :  m2eclipse-android-integration in Jenkins</h3>
<p>I actually set up this configuration for the m2eclipse-android-integration project; this project is an eclipse plugin, that extends the capability of m2eclipse to android projects, here is the link to the<a href="http://ci.dahanne.net/"> Jenkins hosting this job</a></p>
<p>The author, <a href="http://rgladwell.wordpress.com/">Ricardo Gladwell</a>, designed exclusively integration tests on the UI, since most of the functionality of this eclipse plugin is UI contribution.</p>
<p>Here are the specific problems I met while setting up this job in Jenkins :</p>
<ul>
<li>as I previously mentioned, the first time I launched the job against this project, once all the tests passed, the tycho surefire plugin step would not stop&#8230; actually the Google ADT plugin in Eclipse, was asking to confirm whether or not I wanted to upload usage data, so I connected to the UI and clicked &laquo;&nbsp;ok&nbsp;&raquo;;  vnc saved the day&#8230;</li>
<li>the tests were relying on android projects, requiring to have among the latest Android libraries; to be up to date (so that the tests would not fail), I had to run the command :</li>
</ul>
<p><code>$ android update sdk --no-ui --obsolete --force</code></p>
<p>Overall, that was a good exercise to practice CI on a UI project.</p>
<p>Links :</p>
<div>
<ul>
<li><a href="https://wiki.jenkins-ci.org/display/JENKINS/Xvnc+Plugin">The Hudson / Jenkins xVNC plugin</a>\</li>
<li><a href="http://code.google.com/a/eclipselabs.org/p/m2eclipse-android-integration/">m2eclipse-android-integration on google code</a> and now <a href="http://rgladwell.github.com/m2e-android/">m2e-android on github</a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2011/07/18/run-ui-tests-on-a-headless-jenkins-hudson-continuous-integration-server-running-ubuntu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>NAS Synology : pour les sauvegardes et pour diffuser les médias</title>
		<link>http://blog.dahanne.net/2011/07/11/nas-synology-pour-les-sauvegardes-et-pour-diffuser-les-medias/</link>
		<comments>http://blog.dahanne.net/2011/07/11/nas-synology-pour-les-sauvegardes-et-pour-diffuser-les-medias/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 23:58:27 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/?p=526</guid>
		<description><![CDATA[<p>Séduit par l&#8217;idée d&#8217;un boîtier pour effectuer mes sauvegardes à faible coût, faible consommation énergétique, faible encombrement, en ligne 24h/24, j&#8217;ai récemment fait l&#8217;acquisition d&#8217;un NAS (Network Attached Storage); et c&#8217;est assez naturellement que je me suis tourné vers Synology, un des (sinon le) incontournables du marché (l&#8217;utilisation de Linux BusyBox et d&#8217;une multitude de [...]]]></description>
			<content:encoded><![CDATA[<p>Séduit par l&#8217;idée d&#8217;un boîtier pour effectuer mes sauvegardes à faible coût, faible consommation énergétique, faible encombrement, en ligne 24h/24, j&#8217;ai récemment fait l&#8217;acquisition d&#8217;un <a href="http://fr.wikipedia.org/wiki/Stockage_en_r%C3%A9seau_NAS">NAS (Network Attached Storage)</a>; et c&#8217;est assez naturellement que je me suis tourné vers <a href="http://www.synology.com/index.php?lang=fre">Synology</a>, un des (sinon le) incontournables du marché (l&#8217;utilisation de Linux BusyBox et d&#8217;une multitude de logiciels libres n&#8217;y est sans doute pas pour rien !); j&#8217;ai opté pour le DS211J, qui dispose de 2 baies à disque SATA; pour l&#8217;instant je n&#8217;y aie inséré qu&#8217;un disque de 1.5 To.</p>
<p>Mon objectif premier est de réaliser des sauvegardes robustes, la cerise sur le gâteau (ou sundae) est le fait de pouvoir consulter mes fichiers multimédias sur mon téléviseur (via une vieille XBOX avec <a href="http://xbmc.org/">XBMC</a> et/ou une PS3)</p>
<h3>Architecture de sauvegarde robuste</h3>
<p>On réalise des sauvegardes, car on ne veut pas perdre des années de photo, de travail sur documents multimédia (montages vidéos) ses documents personnels (impôts, etc..).</p>
<p>La majorité des utilisateurs sauvegarde leurs fichiers vers un disque dur externe, quand ils y pensent&#8230;</p>
<p>Cette approche là est résolument insatisfaisante : il faut automatiser (fréquence) le processus de sauvegarde (donc avoir du matériel toujours disponible pour effectuer la sauvegarde) et aussi diversifier ses lieux de sauvegarde (tout sauvegarder sur des supports qui se trouvent au même endroit que les originaux ouvre la porte à une perte de donnés en cas d&#8217;inondation, incendie, cambriolage, etc&#8230;)</p>
<p>Je vais décrire ici comment utiliser un NAS Synology pour :</p>
<ul>
<li>y sauvegarder ses documents (les machines du réseau local, dans notre cas sous Ubuntu, vont sauvegarder vers le NAS)</li>
<li>synchroniser ces sauvegardes vers une machine distante (le NAS va synchroniser les sauvegardes vers une machine dans un data center)</li>
<li>y sauvegarder des sites internet et boîtes courriels hébergés sur un serveur distant (une machine dans un data center va sauvegarder ses données vers le NAS)</li>
</ul>
<p>Enfin, je décrirai quelques astuces pour profiter de son NAS en serveur multimédia.</p>
<h3>Sauvegarde entre les ordinateurs locaux et le NAS</h3>
<p>Il existe un excellent article qui introduit ce propos <a href="http://forum.synology.com/wiki/index.php/Backup_Linux_desktop_data_using_rsync">sur le wiki de Synology</a>; ceci dit la technique est la même que celle que <a href="http://blog.dahanne.net/2008/02/16/solution-de-sauvegarde-locale-et-distante-avec-rsync/">j&#8217;avais décrit pour des sauvegardes distantes</a>.</p>
<p>Mon objectif est ici de sauvegarder mon home directory (/home/anthony en excluant tous les .*) et rien d&#8217;autre<br />
Voici mes remarques et ajouts :</p>
<ul>
<li>Depuis l&#8217;interface graphique de votre NAS, rendez vous dans Panneau de configuration&gt;Utilisateur, sélectionnez votre utilisateur et appuyez et cocher &laquo;&nbsp;Accueil Utilisateur&nbsp;&raquo; (une traduction sympathique de Home directory :-p) , vous disposez maintenant d&#8217;un répertoire personnel dans /volume1/homes/votre_utilisateur</li>
<li>la première étape est la création d&#8217;une clef (DSA, c&#8217;est important, RSA n&#8217;a pas marché chez moi&#8230;) sans mot de passe; utilisez la série de commande standard suivantes, dans mon cas :</li>
</ul>
<p><code>ssh-keygen -t dsa -b 1024 -f ~/.ssh/diskstation</code></p>
<p>(pas de mot de passe, il serait difficile de gérer des sauvegardes non interactives avec un mot de passe, vérifiez quand même que votre clef .ssh/diskstation est en 600)</p>
<ul>
<li>Maintenant envoyer la clef publique à votre NAS :</li>
</ul>
<p><code>ssh-copy-id -i .ssh/diskstation.pub anthony@diskstation</code></p>
<ul>
<li>Tester la connexion à votre NAS en utilisant la clef : (attention, il est fort possible que votre utilisateur n&#8217;aie pas de shell utilisable par défaut; connectez vous alors via SSH en tant que root (même mot de passe que admin) à votre NAS et éditez /etc/passwd, sur la ligne correspondant à votre utilisateur, remplacez /sbin/login par /bin/ash ; l’interpréteur de commandes par défaut)</li>
</ul>
<p><code>ssh -i .ssh/diskstation diskstation</code></p>
<p>vous devriez arriver, sans mot de passe, dans le répertoire /volume1/homes/votre_utilisateur de votre NAS.</p>
<ul>
<li>rsync pour sauvegarder, la commande est assez simple :</li>
</ul>
<p><code>rsync -avz --delete /home/anthony/ --exclude=.* diskstation:/volume1/homes/anthony/sauvegarde</code></p>
<ul>
<li>sauf que le vrai défi avec les sauvegardes, c&#8217;est qu&#8217;il faut qu&#8217;elles soient automatiques, et lancées périodiquement ! ce bon vieux cron est encore une fois notre ami :</li>
</ul>
<p><code>vim sauvegarde.ssh</code></p>
<p>on y écrit :</p>
<pre class="bash">#!/bin/sh
rsync -avz --delete --exclude=.*  -e "ssh -i /home/anthony/.ssh/diskstation"   /home/anthony/  diskstation:/volume1/homes/anthony/x60s</pre>
<p><code>chmod +x</code></p>
<p>on peut tester :</p>
<p><code> ./sauvegarde.sh</code></p>
<p>et enfin le rajouter à la crontab :</p>
<p><code>sudo vim /etc/crontab</code></p>
<p>et rajouter la ligne (pour lancer la sauvegarde tous les Dimanche à 2h00) :</p>
<pre class="bash"># m h dom mon dow user  command
0 2    * * 7   anthony      /home/anthony/sauvegarde.sh</pre>
<ul>
<li>Répétez cette opération pour tous les postes du réseau local.</li>
</ul>
<p>Tout devrait bien se passer quotidiennement, à surveiller que tout est bien en place quand le disque dur de l&#8217;hôte commence à faire des bruits étranges ou avant de partir en congés&#8230;</p>
<h3>Sauvegarde entre le NAS et un serveur distant</h3>
<p>Le logiciel d&#8217;administration web des NAS Synology, Disk Station Manager (DSM 3.1 au moment où j&#8217;écris) dispose d&#8217;une efficace interface d’administration, qui comporte un volet &laquo;&nbsp;Restaurer et sauvegarder&nbsp;&raquo;; nous pourrions très bien faire comme précédemment pour sauvegarder le NAS vers un serveur distant, mais autant profiter de l&#8217;interface graphique et des notifications de DSM !</p>
<p>Pour commencer, vous devez préparer votre serveur distant à recevoir les sauvegardes, dans mon cas, nous avons un utilisateur backup, avec son répertoire personnel /home/backup</p>
<p>Dans ce même répertoire personnel, nous allons y créer un fichier rsyncd.conf avec le contenu suivant :</p>
<pre class="bash">[diskstation]
comment = diskstation
path = /home/backup/diskstation
use chroot = no
read only = no
list = yes
uid = sauvegarde
gid = sauvegarde
strict modes = yes
ignore errors = no
ignore nonreadable = yes
transfer logging = no
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz</pre>
<p>Grâce à ce fichier, lorsque votre NAS fera ses sauvegardes, il trouvera la configuration rsync.</p>
<p>Côté client, donc le NAS, dirigez vous vers l&#8217;interface graphique &laquo;&nbsp;Restaurer et sauvegarder&nbsp;&raquo; et créez une nouvelle sauvegarde</p>
<ul>
<li>choisissez sauvegarde réseau (compatible rsync)</li>
<li>sélectionnez toutes les options SAUF l&#8217;avant dernière (réserver les fichiers; si vous la cochez, lorsque vous supprimerez un fichier/répertoire de la source il sera gardé sur le serveur)</li>
<li>choisissez le nom de module rsync que vous avez configuré sur votre serveur distant (dans notre cas diskstation) et saisissez l&#8217;utilisateur (dans notre cas backup) ainsi que son mot de passe</li>
<li>Testez la connexion, paramétrez la fréquence</li>
</ul>
<p>Et c&#8217;est fini !</p>
<h3>Sauvegarde entre un serveur distant et le NAS</h3>
<p>Dans ce cas ci, vous devez au préalable avoir un moyen d&#8217;identifier sur internet votre nas, par exemple, DSM vient avec un client DynDNS.</p>
<p>Dans la suite du paragraphe j&#8217;assume que vous avez un nom d&#8217;hôte fixe (ou une IP fixe) pour votre NAS, et que vous pouvez y accéder par internet (pour ceci vous devrez configurer aussi les bons port forwarding [seul ssh nous intéresse dans le cas présent] depuis votre routeur ou &laquo;&nbsp;box&nbsp;&raquo;)</p>
<p>Pour le reste, c&#8217;est la même chose que ce que j&#8217;ai décrit au chapitre &laquo;&nbsp;Sauvegarde entre les ordinateurs locaux et le NAS&nbsp;&raquo; &#8230;</p>
<p>La particularité que vous pourrez rencontrer, au cas où vous sauvegarder des répertoires qui appartiennent à plusieurs utilisateurs sur le serveur distant à sauvegarder vers le NAS, est de travailler avec l&#8217;utilisateur root : c&#8217;est le seul utilisateur à pouvoir accéder à tous le système de fichiers.</p>
<p>Donc</p>
<ul>
<li>côté NAS, créez un utilisateur backup, donnez lui un répertoire personnel et l&#8217;accès via SSH;</li>
<li>côté serveur distant à sauvegarder, créez un couple de clefs pour se connecter sans mot de passe au NAS, en tant que utilisateur backup, créez un script sauvegarde.sh, qui vous rentrerez dans la crontab, à lancer par root (il pourra donc travailler sur tout le système de fichiers)</li>
</ul>
<p>procéder de cette manière vous permet de pouvoir sauvegarder tout le système de fichiers, sans jamais compromettre l&#8217;utilisateur root (pas de connexion en tant que root, ni par SSH ni par sudo, etc&#8230;)</p>
<p>&nbsp;</p>
<h3>Astuces pour la performance de votre NAS Synology</h3>
<p>Si vous avez beaucoup de photos dans le partage &laquo;&nbsp;photo&nbsp;&raquo;, vous risquez de voir un process appelé &laquo;&nbsp;convert&nbsp;&raquo; (en fait c&#8217;est imagemagick) prendre tout la mémoire vive et une bonne partie du CPU de votre Synology.</p>
<p>Ce process est lancé par le démon suivant :</p>
<p><code>/usr/syno/etc/rc.d/S77synomkthumbd.sh</code></p>
<p>donc il vous suffit, une fois connecté par ssh en root (même mot de passe que admin une fois que l&#8217;accès ssh est configuré) de lancer :</p>
<p><code>/usr/syno/etc/rc.d/S77synomkthumbd.sh stop</code></p>
<p>Si vous voulez définitivement arrêter ce service, éditez le avec vim et rajouter exit à la 2ème ligne (<a href="http://forum.synology.com/wiki/index.php/How_to_disable_the_Synology_Multimedia_Indexing_Engine">cette astuce est publiée dans le wiki de synology</a>; attention à ne pas comme eux désactiver postgresql, toutes les applications multimédia : photo, son, video, téléchargements nécessitent cette base de donnée); attention quand vous remettrez votre NAS à jour, il faudra ré effectuer l&#8217;opération (sigh!)</p>
<p>&nbsp;</p>
<h3>Diffuser des fichiers vidéos hébergés par le NAS Synology</h3>
<p>Le plus simple, si vous disposez d&#8217;un lecteur branché à la TV qui peut naviguer sur des partages Samba/CIFS (comme la vieille XBOX avec XBMC), c&#8217;est alors de configurer un dossier partagé (par défaut, un dossier partagé est un partage SMB/CIFS) contenant vos vidéos.</p>
<p>Si vous utilisez une PS3, l&#8217;approche est différente, il faut utiliser le partage médias par DLNA (car la PS3 ne peut pas monter un partage SMB/CIFS)</p>
<p>Si vous configurez votre NAS comme étant un serveur DLNA, il vous suffit d&#8217;avoir vos videos dans le partage video pour que la PS3 puisse les lire&#8230;enfin çà va bien pour les formats (container, codes audio et video) que la PS3 reconnaît nativement&#8230;</p>
<p>Pour les autres formats de video, comme par exemple container MKV encapsulant du h264, votre PS3 vous dira &laquo;&nbsp;format de fichier non compatible&nbsp;&raquo;.</p>
<p>Deux options se présentent à vous :</p>
<ul>
<li>votre PS3 utilise un firmware &laquo;&nbsp;non officiel&nbsp;&raquo;comme le CFW 3.55 kmeaw, dans ce cas vous pouvez installer le logiciel de lecture<a href="https://www.lonelycoder.com/hts/showtime_overview.html"> Showtime sur votre PS3</a>, qui non seulement lit les partages DLNA, mais est capable aussi d&#8217;ouvrir à peu près tous les containeurs vidéo et recense un bon nombre de codecs..(il repose sur libav)</li>
<li>Une autre approche, est de convertir à la volée vos fichiers vidéos dans un format que la PS3 peut ouvrir, le logiciel <a href="http://forum.synology.com/enu/viewtopic.php?f=37&amp;t=13014">PS3 Media Player semble pouvoir être installable sur un NAS Synology</a>, ceci dit je n&#8217;ai pas essayé&#8230;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2011/07/11/nas-synology-pour-les-sauvegardes-et-pour-diffuser-les-medias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encoder vos videos en Webm (vp8) avec ffmpeg sous Ubuntu</title>
		<link>http://blog.dahanne.net/2010/06/19/encoder-vos-videos-en-webm-vp8-avec-ffmpeg-sous-ubuntu/</link>
		<comments>http://blog.dahanne.net/2010/06/19/encoder-vos-videos-en-webm-vp8-avec-ffmpeg-sous-ubuntu/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 00:02:26 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[montage video]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/?p=356</guid>
		<description><![CDATA[<p>Depuis la libération du codec VP8 (et de son conteneur WebM) de ON2 technologies par Google en Mai 2010, la communauté open source (et les amateurs de video !) a trouvé le digne remplaçant de theora, finalement peu performant, et surtout un adversaire de poids face au codec video breveté et certainement pas standard h264. [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis la libération du codec VP8 (et de son conteneur WebM) de ON2 technologies par Google en Mai 2010, la communauté open source (et les amateurs de video !) a trouvé le digne remplaçant de theora, finalement peu performant, et surtout un adversaire de poids face au codec video breveté et certainement pas standard h264.<br />
Cet article a pour but d&#8217;expliquer comment :</p>
<ul>
<li>installer ffmpeg avec le support de webm sur Ubuntu</li>
<li>encoder une vidéo au format webm</li>
<li>lire une vidéo au format webm</li>
</ul>
<h3>Installer ffmpeg avec le support de webm sur Ubuntu</h3>
<p>Pour cela, je vais reprendre en quasi intégralité cet<a href="http://www.webdevonlinux.fr/2010/06/ffmpeg-0-6-0-ajoute-le-support-du-codec-webm"> excellent article de Steph sur l&#8217;installation de ffmpeg avec support de Webm sur Ubuntu 10.04 (lucid Lynx)</a>.<br />
On enlève les versions originales de ffmpeg et eventuellement de  x264 :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> remove <span style="color: #c20cb9; font-weight: bold;">ffmpeg</span> x264 libx264-dev</pre></div></div>

<p>On met à jour le système de paquets et on installe les librairies nécessaires sur le système :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> update
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev</pre></div></div>

<p>Récupération des sources, compilation et installation de x264 (optionnel, si vous voulez aussi encoder en x264) sous forme de paquets pour votre système (checkinstall wrappe &laquo;&nbsp;make install&nbsp;&raquo; en installant en plus le binaire obtenu sous forme de paquets debian dans votre système)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>git.videolan.org<span style="color: #000000; font-weight: bold;">/</span>x264.git
<span style="color: #7a0874; font-weight: bold;">cd</span> x264
.<span style="color: #000000; font-weight: bold;">/</span>configure
<span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> checkinstall <span style="color: #660033;">--pkgname</span>=x264 <span style="color: #660033;">--pkgversion</span> <span style="color: #ff0000;">&quot;2:0.<span style="color: #780078;">`grep X264_BUILD x264.h -m1 | cut -d' ' -f3`</span>.<span style="color: #780078;">`git rev-list HEAD | wc -l`</span>+git<span style="color: #780078;">`git rev-list HEAD -n 1 | head -c 7`</span>&quot;</span> <span style="color: #660033;">--backup</span>=no <span style="color: #660033;">--default</span></pre></div></div>

<p>Récupération des sources, compilation et installation de VP8, librairie nommée libvpx sous forme de paquets pour votre système (checkinstall wrappe &laquo;&nbsp;make install&nbsp;&raquo; en installant en plus le binaire obtenu sous forme de paquets debian dans votre système)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>review.webmproject.org<span style="color: #000000; font-weight: bold;">/</span>libvpx.git
<span style="color: #7a0874; font-weight: bold;">cd</span> libvpx
.<span style="color: #000000; font-weight: bold;">/</span>configure
<span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> checkinstall <span style="color: #660033;">--pkgname</span>=libvpx <span style="color: #660033;">--pkgversion</span>=<span style="color: #ff0000;">&quot;<span style="color: #780078;">`date +%Y%m%d%k%M`</span>-git&quot;</span> <span style="color: #660033;">--backup</span>=no <span style="color: #660033;">--nodoc</span> <span style="color: #660033;">--default</span></pre></div></div>

<p>Récupération des sources, compilation et installation de ffmpeg (enfin!)sous forme de paquets pour votre système (checkinstall wrappe &laquo;&nbsp;make install&nbsp;&raquo; en installant en plus le binaire obtenu sous forme de paquets debian dans votre système, à noter que pour ffmpeg vous aurez une erreur lors du checkinstall, qui n&#8217;empêchera pas l&#8217;installation d&#8217;aboutir)<br />
Si vous avez installé x264, vous pouvez ajouter comme ci dessous ajouter le support x264 à ffmpeg  : &#8211;enable-libx264 ; à noter que l&#8217;option &#8211;enable-libvpx vous donnera accès à l&#8217;encodage webm</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span>
<span style="color: #c20cb9; font-weight: bold;">svn</span> checkout <span style="color: #c20cb9; font-weight: bold;">svn</span>:<span style="color: #000000; font-weight: bold;">//</span>svn.ffmpeg.org<span style="color: #000000; font-weight: bold;">/</span>ffmpeg<span style="color: #000000; font-weight: bold;">/</span>trunk <span style="color: #c20cb9; font-weight: bold;">ffmpeg</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #c20cb9; font-weight: bold;">ffmpeg</span>
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--enable-gpl</span> <span style="color: #660033;">--enable-version3</span> <span style="color: #660033;">--enable-nonfree</span> <span style="color: #660033;">--enable-postproc</span> <span style="color: #660033;">--enable-pthreads</span> <span style="color: #660033;">--enable-libfaac</span> <span style="color: #660033;">--enable-libfaad</span> <span style="color: #660033;">--enable-libmp3lame</span> <span style="color: #660033;">--enable-libopencore-amrnb</span> <span style="color: #660033;">--enable-libopencore-amrwb</span> <span style="color: #660033;">--enable-libtheora</span> <span style="color: #660033;">--enable-libvorbis</span> <span style="color: #660033;">--enable-libvpx</span> <span style="color: #660033;">--enable-libx264</span> <span style="color: #660033;">--enable-libxvid</span> <span style="color: #660033;">--enable-x11grab</span>
<span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> checkinstall <span style="color: #660033;">--pkgname</span>=<span style="color: #c20cb9; font-weight: bold;">ffmpeg</span> <span style="color: #660033;">--pkgversion</span> <span style="color: #ff0000;">&quot;4:SVN-r<span style="color: #780078;">`svn info | grep Revision | awk '{ print $NF }'`</span>&quot;</span> <span style="color: #660033;">--backup</span>=no <span style="color: #660033;">--default</span>
<span style="color: #7a0874; font-weight: bold;">hash</span> x264 <span style="color: #c20cb9; font-weight: bold;">ffmpeg</span> ffplay</pre></div></div>

<p>Alors il est vrai que c&#8217;est toujours plus simple d&#8217;installer des paquets avec apt-get install que de compiler des sources, mais le support de webm dans ffmpeg est à ce jour tellement récent que vous ne trouverez pas de paquets pour votre distribution !</p>
<h3>Encoder vos vidéos en webm avec ffmpeg</h3>
<p>Rien de plus simple !</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ffmpeg</span> <span style="color: #660033;">-i</span> input.avi <span style="color: #660033;">-threads</span> <span style="color: #000000;">2</span> output.webm</pre></div></div>

<p>(sauf qu&#8217;il semnlearait que le -threads 2, supposé donner 2 threads à ffmpeg, utile pour les dual core, ne soit pas supporté, à ce jour, pour webm)</p>
<h3>Lire vos vidéos encodées en webm</h3>
<h2>Avec ffplay</h2>
<p>Vous avez déjà installé précédemment ffmplay :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ffplay output.webm</pre></div></div>

<h2>Avec vlc</h2>
<p>Vous pouvez aussi les lire avec la dernière version de VLC, à date, la version 1.1.0; il vous faut ajouter un nouveau repo avec les dernières version de vlc, enlever votre version actuelle et ré installer vlc :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> add-apt-repository ppa:c-korn<span style="color: #000000; font-weight: bold;">/</span>vlc
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> update
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> remove vlc
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> vlc mozilla-plugin-vlc videolan-doc</pre></div></div>

<p>Depuis la sortie officielle de VLC en 1.1.0, VLC lit parfaitement les fichiers webm, toutes plateformes confondues !</p>
<h2>Avec votre navigateur web</h2>
<p>Mais le véritable intérêt de webm, c&#8217;est le web, aussi à cette page, <a href="http://www.youtube.com/html5">vous sont listées les navigateurs compatibles webm</a>.<br />
Vous y trouverez un paquet debian/ubuntu pour chrome, et en <a href="http://nightly.mozilla.org/">téléchargeant et détarrant un firefox nightly build</a>, vous pourrez aussi les lire avec firefox.</p>
<p>Si vous pouvez lire la video ci dessous, c&#8217;est qu&#8217;alors vous utilisez un navigateur compatible webm !<br />
<video width="854" height="480" controls preload="none"><br />
       <source src="http://blog.dahanne.net/wp-content/uploads/sample.webm" type="video/webm" /><br />
</video></p>
<p>Avec chrome version 6.0.437.3 dev , j&#8217;ai pu la lire avec succès !</p>
<p>Vous pouvez aussi télécharger la vidéo en enregistrant cette url :</p>
<p><a href="http://blog.dahanne.net/wp-content/uploads/sample.webm">Exemple de vidéo webm à télécharger</a></p>
<p>Bon encodage Webm à tous !</p>
<h3>Sources :</h3>
<ul>
<li><a href="http://linuxfr.org//2010/06/17/27005.html">annonce de l&#8217;intégration de webm sur linuxfr.org</a></li>
<li><a href="http://www.webdevonlinux.fr/2010/06/ffmpeg-0-6-0-ajoute-le-support-du-codec-webm">installer webm sur ubuntu 10.04 64 bits</a></li>
<li><a href="http://ubuntuforums.org/showthread.php?t=786095">install webm on ubuntu</a></li>
<li><a href="http://www.mirovideoconverter.com/">Encoder vos videos webm sous windows</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2010/06/19/encoder-vos-videos-en-webm-vp8-avec-ffmpeg-sous-ubuntu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Diffusez vos vidéos HD en H264 sur le web !</title>
		<link>http://blog.dahanne.net/2008/03/20/diffusez-vos-videos-hd-en-h264-sur-le-web/</link>
		<comments>http://blog.dahanne.net/2008/03/20/diffusez-vos-videos-hd-en-h264-sur-le-web/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 22:58:36 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[montage video]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2008/03/20/diffusez-vos-videos-hd-en-h264-sur-le-web/</guid>
		<description><![CDATA[<p>Depuis la version 9 (update 3) de flash, le plugin propriétaire présent sur 98% des navigateurs internet, il est possible de lire des fichiers vidéos non plus seulement au format maison .flv (un dérivé de h263) mais aussi au standard H264, codec vidéo très performant ! Je vous propose de vous même encoder vos vidéos [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis la version 9 (update 3) de flash, le plugin propriétaire présent sur 98% des navigateurs internet, il est possible de lire des fichiers vidéos non plus seulement au format maison .flv (un dérivé de h263) mais aussi au standard H264, codec vidéo très performant !<br />
Je vous propose de vous même encoder vos vidéos au format H264, à l&#8217;aide d&#8217;outils libres, ffmpeg en l&#8217;occurrence, et d&#8217;ensuite les diffuser sur internet via un lecteur de vidéo au format flash, qu&#8217;il vous suffira d&#8217;insérer dans vos pages web !<br />
(à vous de voir après si vous préférez laisser la diffusion de vos vidéos à une régie publicitaire comme youtube et consorts !)<br />
Je me sers de cette procédure pour diffuser des vidéos issues de mon camescope Sony HDR-HC7E en haute définition (1440 PAR 1.33 x 1080 entrelacé) dans une résolution correcte : 960x540p<br />
Dans tout ce tutorial, le &#8216;%&#8217; correspond à l&#8217;invite de commande de mon shell.</p>
<h3>Installation de FFMPEG du dépôt subversion sur Ubuntu Gutsy 7.10 : (aussi testé sur Ubuntu Feisty 7.04)</h3>
<p>Dans un premier temps :<br />
<code>%sudo apt-get build-dep ffmpeg</code><br />
Selon le man de &laquo;&nbsp;apt-get&nbsp;&raquo;, &laquo;&nbsp;Avec la commande build-dep, apt-get installe ou supprime des paquets dans le but de satisfaire les dépendances de construction d&#8217;un paquet source.&nbsp;&raquo;<br />
Ensuite, installons les librairies multipmédias nécessaires et aussi Subversion, car nous allons avoir besoin de récupérer la toute dernière version de ffmpeg :<br />
<code>%sudo apt-get install liblame-dev libfaad2-dev libfaac-dev libxvidcore4-dev liba52-0.7.4 liba52-0.7.4-dev libx264-dev libdts-dev checkinstall build-essential subversion</code><br />
On récupèrele code source de ffmpeg par svn :<br />
<code>svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg</code><br />
Il est temps de compiler ffmpeg, pour cela, rendons nous dans le répertoire du ffmpeg récemment récupéré :<br />
<code>%cd ffmpeg</code><br />
Au cas où vous avez déjà compilé : (sinon çà fait pas de mal)<br />
<code>%make distclean</code><br />
on configure :<br />
<code>%./configure --enable-gpl --enable-pp --enable-libvorbis --enable-libtheora --enable-liba52 --enable-libdc1394 --enable-libgsm --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-libxvid --enable-pthreads --enable-libx264</code><br />
et on compile :<br />
<code>make</code><br />
Ça prend un peu de temps, mais au bout, vous obtiendrez dans votre répertoire un ffmpeg compilé avec le support de h264 (entre autres encodeurs).<br />
Vous pourriez l&#8217;installer avec sudo checkinstall  et sudo make install, mais je préfère le garder à part de /usr/bin au cas où un jour je veuille utiliser le ffmpeg de ma distrib)<br />
Tant que nous sommes à la compilation, compilons qt-faststart (j&#8217;explique peu après à quoi sert qt-faststart : déplacer les entêtes, les metadata, au début du fichier video):<br />
Compiler qt-faststart.c</p>
<div class="code">gcc -O3  -g -Wdeclaration-after-statement -Wall -Wno-switch -I -I$REP_SVN_FFMPEG/ffmpeg -I$REP_SVN_FFMPEG/ffmpeg/libavutil -I$REP_SVN_FFMPEG/ffmpeg/libavcodec -I$REP_SVN_FFMPEG/ffmpeg/libavformat -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE $REP_SVN_FFMPEG/ffmpeg/tools/qt-faststart.c -o qt-faststart</div>
<p>en remplaçant $REP_SVN_FFMPEG par le chemin complet du répertoire du ffmpeg récupéré par svn.<br />
Et voilà, fini pour l&#8217;installation ! place à l&#8217;utilisation !</p>
<h3>Encodage du fichier video en H264</h3>
<p>En remplaçant $REP_SVN_FFMPEG par le chemin complet du répertoire du ffmpeg récupéré par svn,</p>
<div class="code">$REP_SVN_FFMPEG/ffmpeg/ffmpeg -i ma_video.m2t -vcodec libx264  -b 800k -ab 128k -s 960&#215;540 -deinterlace ma_video.mov</div>
<p>cà peut être (très, 5fps) long &#8230;</p>
<h3>Déplacement de l&#8217;entête MOOV ATOM au début du fichier</h3>
<p>Malheureusement, si vous laissez la vidéo obtenue telle quelle, avant de pouvoir la visionner, vous serez obligé de la télécharger en entier; car les métadata du fichier, MOOV ATOM, sont placées à la fin du fichier, et non au début.<br />
C&#8217;est alors que qt-faststart rentre en scène :</p>
<div class="code">$REP_SVN_FFMPEG/ffmpeg/tools/qt-faststart ma_video.mov ma_video_fast.mov</div>
<p>Pour diffuser votre vidéo sur le web, vous pouvez utiliser la dernière version de FlowPlayer, et consulter mon article à son sujet ! (j&#8217;essaierai de le mettre plus à jour prochainement !)</p>
<p>Bonne diffusion !</p>
<p>Références :<br />
<a href="http://slashdot.org/~PhillC/journal/190344">How to encode in H264 for web broadcasting</a><br />
<a href="http://lists.mplayerhq.hu">La mailing list du site officiel de FFMPEG</a><br />
<a href="http://community.flowplayer.org/node/91">La communauté de FlowPLayer à propos de H264</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2008/03/20/diffusez-vos-videos-hd-en-h264-sur-le-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Solution de sauvegarde locale et distante avec rsync</title>
		<link>http://blog.dahanne.net/2008/02/16/solution-de-sauvegarde-locale-et-distante-avec-rsync/</link>
		<comments>http://blog.dahanne.net/2008/02/16/solution-de-sauvegarde-locale-et-distante-avec-rsync/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 15:20:21 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2008/02/16/solution-de-sauvegarde-locale-et-distante-avec-rsync/</guid>
		<description><![CDATA[<p>Qui n&#8217;a jamais perdu des fichiers lors d&#8217;un crash de disque dur ? ou de la machine tout entière ? Dans cet article je vous expliquer quels sont les moyens que j&#8217;ai mis en œuvre pour sauvegarder les données qui se situent sur mon serveur de fichiers (qui contient mes documents personnels, ma musique, mes [...]]]></description>
			<content:encoded><![CDATA[<p>Qui n&#8217;a jamais perdu des fichiers lors d&#8217;un crash de disque dur ? ou de la machine tout entière ?<br />
Dans cet article je vous expliquer quels sont les moyens que j&#8217;ai mis en œuvre pour sauvegarder les données qui se situent sur mon serveur de fichiers (qui contient mes documents personnels, ma musique, mes photos, etc..) dans mon appartement.<br />
Rsync est un logiciel qui construit des sauvegardes incrémentales, c&#8217;est à dire qu&#8217;il transfert entre chaque sauvegarde que le delta observé entre les 2.<br />
Les machines concernées sont sous Ubuntu Server 7.10 mais l&#8217;article reste valide pour toute Ubuntu ou Debian.</p>
<h3>Sauvegarde locale</h3>
<p>La sauvegarde locale consiste à sauvegarder certains répertoires d&#8217;un disque vers un autre disque, dans la même machine (mon serveur de fichiers en l&#8217;occurrence) de manière périodique (toutes les semaines).<br />
En l&#8217;occurrence sur la partition /dev/hda1 j&#8217;ai les répertoires /home /var /etc à sauvegarder; pour cela j&#8217;ai la partition /dev/sda2 (sur un disque différent donc) qui est montée sur le pointe de montage /backup<br />
Ainsi mon script cron (sauvegarde.sh, executable bien sûr) à lancer toutes les semaines est le suivant :</p>
<div class="code">
#!/bin/sh<br />
#############################<br />
# SAUVEGARDES LOCALES       #<br />
#############################<br />
#sauvegarde du repertoire etc<br />
rsync -avz &#8211;delete /etc /backup/<br />
#sauvegarde du repertoire var<br />
rsync -avz &#8211;delete /var /backup/<br />
#sauvegarde du repertoire home<br />
rsync -avz &#8211;delete /home /backup/
</div>
<p>L&#8217;option &laquo;&nbsp;-avz&nbsp;&raquo; signifie que la sauvegarde (le transfert) des fichiers sera récursif; les fichiers seront tranférés en mode &laquo;&nbsp;archive&nbsp;&raquo; qui garantit que les les liens symboliques, les attributs,les permissions, les droits, etc&#8230; seront préservés lors du transfert; de plus une compression sera utilisée lors du tranfert (qui n&#8217;affectera pas vos fichiers)<br />
l&#8217;option &laquo;&nbsp;&#8211;delete&nbsp;&raquo; signifie elle que lorsque l&#8217;on supprimera un fichier sur /etc par exemple, il devra être supprimé aussi de /backup/etc/ lors de la sauvegarde. (si vous ne mettez pas cette option, votre /backup risque de se remplir très rapidement !!!)</p>
<h3>Mise en place du &laquo;&nbsp;job&nbsp;&raquo; cron</h3>
<p>Pour appeler le script de sauvegarde sauvegarde.sh, il faut l&#8217;indiquer dans une table cron; pour cela je vous renvoie au <a href="http://doc.ubuntu-fr.org/cron">tutoriel cron d&#8217;ubuntu-fr.org</a><br />
En particulier, le script de sauvegarde doit être lancé par un utilisateur ayant accès à l&#8217;ensemble du système de fichiers.<br />
Plutôt que d&#8217;utiliser root, nous allons créer un nouvel utilisateur , &laquo;&nbsp;sauvegarde&nbsp;&raquo; qui fera partie du groupe root, et autres groupes utilisateurs nécessaires pour qu&#8217;il puisse sauvegarder l&#8217;ensemble des répertoires spécifiés.<br />
Son &laquo;&nbsp;home directory&nbsp;&raquo; sera /backup<br />
<code>% sudo useradd -d /backup -g root -G anthony sauvegarde</code><br />
donnez lui l&#8217;appartenance de ce répertoire:<br />
<code>% sudo chown -R sauvegarde:root /backup</code><br />
Ainsi, le script sauvegarde.sh doit être accessible et lancé par notre nouvel utilisateur sauvegarde; pour cela, créez une nouvelle crontab pour l&#8217;utilisateur sauvegarde :</p>
<div class="code">
% sudo crontab -u sauvegarde -e
</div>
<p>Votre éditeur (vi ou emacs) se lance, insérez la ligne suivante :<br />
<code>@weekly /chemin_ou_situe/sauvegarde.sh  #sauvegarde</code></p>
<p>çà y est !<br />
votre sauvegarde locale est créée, vous être à l&#8217;abri du crash du disque contenant /home /etc et /var !!<br />
Mais si votre machine est victime d&#8217;une surtension,et que tous les disques sont endommagés, vous perdrez tout !!!</p>
<h3>Sauvegarde distante</h3>
<p>Pour se prémunir d&#8217;un dégât, d&#8217;un vol, d&#8217;un incendie, il faut sauvegarder vos données vers une machine distante.<br />
Si vous possédez un serveur dédié (ou si un ami ou autre personne de confiance vous donne accès à son serveur) vous pouvez alors mettre en place une solution de sauvegarde distante.<br />
Pour cela, compléter le fichier sauvegarde.sh  en y rajoutant ces lignes : </p>
<div class="code">
#############################<br />
# SAUVEGARDES DISTANTES     #<br />
#############################<br />
serveur=&nbsp;&raquo;mon.serveur.dedie.fr&nbsp;&raquo;<br />
#sauvegarde du repertoire home<br />
rsync -avz &#8211;delete /backup/home $serveur:/backup/<br />
#sauvegarde du repertoire etc<br />
rsync -avz &#8211;delete /backup/etc $serveur:/backup/<br />
#&#8230;
</div>
<p>Comme vous pouvez le constater, avec rsync, une sauvegarde locale ou distante est traitée de la même manière, la syntaxe est identique, au <b>$serveur:</b> près.<br />
Bien entendu pour que tout ceci fonctionne, vous devez, sur la machine distante, créer un utilisateur sauvegarde , avec pour &laquo;&nbsp;home directory&nbsp;&raquo; /backup (répertoire à créer sur la machine distante).<br />
<code>% sudo useradd -d /backup sauvegarde</code><br />
donnez lui l&#8217;appartenance de ce répertoire:<br />
<code>% sudo chown -R sauvegarde:sauvegarde /backup</code><br />
donnez à votre utilisateur sauvegarde un mot de passe (fort de préférence) :<br />
<code>% sudo passwd sauvegarde</code><br />
Aussi, pour permettre à votre machine locale de se connecter à la machine distante, sans intervention de votre part (sans demander de mot de passe donc) vous devez créer un couple de clés DSA.<br />
Sur la machine locale, logguez vous en utilisateur sauvegarde :<br />
<code>% sudo su sauvegarde</code><br />
et créez votre couple de clés DSA :</p>
<div class="code">$ ssh-keygen -t dsa<br />
Generating public/private dsa key pair.<br />
Enter file in which to save the key (/backup/.ssh/id_dsa):<br />
Created directory &#8216;/backup/.ssh&#8217;.<br />
Enter passphrase (empty for no passphrase):<br />
Enter same passphrase again:<br />
Your identification has been saved in /backup/.ssh/id_dsa.<br />
Your public key has been saved in /backup/.ssh/id_dsa.pub.<br />
The key fingerprint is:<br />
XXXXXXXXXXXXX sauvegarde@machine
</div>
<p>Acceptez l&#8217;emplacement par défaut pour la création des clefs, et appuyez sur entrée lorsque l&#8217;on vous demande une &laquo;&nbsp;passphrase&nbsp;&raquo; (comme çà, nul besoin de saisir de mot de passe pour utiliser la clef).<br />
Il n&#8217;y a plus qu&#8217;à partager la clef publique générée avec la machine distante :<br />
toujours loggué en utilisateur  sauvegarde sur la machine locale :<br />
<code>ssh-copy-id -i ~/.ssh/id_dsa.pub sauvegarde@machine_distante</code><br />
C&#8217;est fini, votre utilisateur sauvegarde, sur la machine locale, pouvant se logguer sur la machine distante, votre script cron, sauvegarde.sh, sera lancé toutes les semaines sans problème afin de sauvegarder localement et à distance vos données importantes.<br />
Vos commentaires sont les bienvenus !</p>
<p>Références :<br />
<a href="http://samba.anu.edu.au/rsync/">le site officiel de Rsync</a><br />
<a href="http://formation-debian.via.ecp.fr/ch35.html">Formation Debian : accès par ssh</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2008/02/16/solution-de-sauvegarde-locale-et-distante-avec-rsync/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Mounting Gmail with gmailfs on Ubuntu 7.10, without being root</title>
		<link>http://blog.dahanne.net/2008/02/16/mounting-gmail-with-gmailfs-on-ubuntu-710-without-being-root/</link>
		<comments>http://blog.dahanne.net/2008/02/16/mounting-gmail-with-gmailfs-on-ubuntu-710-without-being-root/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 11:18:11 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2008/02/16/mounting-gmail-with-gmailfs-on-ubuntu-710-without-being-root/</guid>
		<description><![CDATA[<p>Google is now offering more than 6 gigs of storage for every gmail account! Never dreamed(!) of using this space as a remote disk ? (for backing up, sharing files between several computers, extending your dedicated server disk space ?) Well, let&#8217;s give it a try; first you need to install : gmailfs python-fuse python-libgmail [...]]]></description>
			<content:encoded><![CDATA[<p>Google is now offering more than 6 gigs of storage for every gmail account!<br />
Never dreamed(!) of using this space as a remote disk ? (for backing up, sharing files between several computers, extending your dedicated server disk space ?)<br />
Well, let&#8217;s give it a try; first you need to install :<br />
gmailfs python-fuse python-libgmail fuse-utils libfuse2 with a  :<br />
<code>% sudo apt-get install gmailfs python-fuse python-libgmail fuse-utils libfuse2 encfs</code><br />
edit the configuration:<br />
<code>% sudo vim /etc/gmailfs/gmailfs.conf</code><br />
edit this file precising your gmail account (I recommend you to dedicate this gmail account only to gmailfs)</p>
<div class="code">
[account]<br />
username = gmailusername<br />
password = gmailpassword<br />
&#8230;.<br />
[filesystem]<br />
fsname = a_hard_to_guess_name
</div>
<p>the fsname is a string that will appear in the subject of every mail gmailfs will send to your account, so if someone sends a message to your gmail adress using this fsname string in the subject, he would corrupt your filesystem !</p>
<p>copy this file to your home directory :<br />
<code>% cp /etc/gmailfs/gmailfs.conf ~/.gmailfs.conf</code></p>
<p>one last thing, we have to create a mount point :<br />
<code>% mkdir ~/gmail</code></p>
<p>now , we&#8217;re ready to mount the filesystem!</p>
<p>Being root :</p>
<div class="code">
#mount<br />
% sudo mount -t gmailfs /usr/share/gmailfs/gmailfs.py ~/gmail/<br />
#unmount<br />
% sudo umount ~/gmail
</div>
<p>or you can mount it at start-up adding this to your /etc/fstab:</p>
<div class="code">/usr/share/gmailfs/gmailfs.py /mnt/gmail gmailfs rw,noauto,username=gmailusername,password=gmailpassword,fsname=a_hard_to_guess_name</div>
<p>(if you have this error when mounting :</p>
<div class="code">Ignored option :rw<br />
HTTP Error 400: Bad Request</div>
<p>it means that your libgmail is outdated (in other words the one in ubuntu repositories is outdated).<br />
So you need to update it manually, using the python update system (easy_update) :</p>
<div class="code">
#first install python-setuptools<br />
sudo apt-get install python-setuptools<br />
#then update libgmail<br />
sudo easy_install &#8211;upgrade libgmail
</div>
<p>at this time, libgmail 0.1.8 is the most recent.<br />
you can now mount it as described before)</p>
<p>yeah but you will notice by doing that ONLY root will be able to &laquo;&nbsp;cd&nbsp;&raquo; into that mount point!<br />
So if you mount your user to access it, you will have to mount with that user, not using mount, but using : </p>
<div class="code">
# Mount<br />
$ /sbin/mount.gmailfs /usr/bin/gmailfs.py ~/gmail/<br />
# Unmount<br />
$ fusermount -u ~/gmail/
</div>
<p>That way your user will be able to access the mount point !</p>
<p>Sources  :<br />
<a href="http://doc.ubuntu-fr.org/gmailfs">Ubuntu-fr Documentation (french)</a><br />
<a href="http://gentoo-wiki.com/HOWTO_GmailFS">Howto gmailfs on Gentoo Linux Wiki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2008/02/16/mounting-gmail-with-gmailfs-on-ubuntu-710-without-being-root/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Créer une iso avec linux (à partir d&#8217;un répertoire)</title>
		<link>http://blog.dahanne.net/2007/12/10/creer-une-iso-avec-linux-a-partir-dun-repertoire/</link>
		<comments>http://blog.dahanne.net/2007/12/10/creer-une-iso-avec-linux-a-partir-dun-repertoire/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 16:36:32 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2007/12/10/creer-une-iso-avec-linux-a-partir-dun-repertoire/</guid>
		<description><![CDATA[<p>Mise à jour ! mkisofs n&#8217;est plus maintenu depusi 2002, c&#8217;est un alias vers genisoimage (ce qui ne remet pas en question le tutorial ci-dessous) Rien de plus simple ! Avec une Debian ou une Ubuntu bien configurée, on installe le paquet mkisofs (avec sudo ou directement en root): % sudo apt-get install mkisofs Pour [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mise à jour ! mkisofs n&#8217;est plus maintenu depusi 2002, c&#8217;est un alias vers genisoimage (ce qui ne remet pas en question le tutorial ci-dessous)</strong><br />
Rien de plus simple !<br />
Avec une Debian ou une Ubuntu bien configurée, on installe le paquet mkisofs (avec sudo ou directement en root):<br />
<code>% sudo apt-get install mkisofs</code><br />
Pour créer une iso test.iso  avec pour racine /home/anthony/test (et contenant donc tout ce qu&#8217;il y a dans ce répertoire) :<br />
<code>% mkisofs -o test.iso /home/anthony/test</code><br />
et l&#8217;iso est créée dans le répertoire courant !<br />
Pour vérifier que votre iso est valide, vous pouvez la tester en la montant sur votre système de fichiers :<br />
<code>% sudo mount -t iso9660 test.iso repertoire_test -o loop</code><br />
Y a t&#8217;il tout ce que l&#8217;on y a mis ?<br />
<code>ls -al repertoire_test</code><br />
OK ? alors on démonte<br />
<code>% sudo umount test.iso</code><br />
 et on grave ou stocke l&#8217;iso !!</p>
<p><strong>Important !</strong><br />
Si vous volez suavegarder un répertoire avec des noms de fichiers longs et/ou de nombreux répertoires imbriqués, alors ces quelques options vous seront utiles :<br />
<code>% genisoimage -R -r -J -joliet-long --hide-rr-moved -iso-level 4 -V "UnLabelPourIso" -o monimage.iso rep_a_sauvegarder</code></p>
<p>Références :<br />
<a href="http://www.andante.org/mkisofs.html">La page du projet mkisofs</a><br />
<a href="http://guide.andesi.org/html/gmonteriso.html">Monter une image Iso par Andesi</a><br />
<a href="http://formation-debian.via.ecp.fr/ch47.html">Graver en console par Formation Debian</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2007/12/10/creer-une-iso-avec-linux-a-partir-dun-repertoire/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installation de Java 5 et Tomcat 5.5 sur Ubuntu avec apt</title>
		<link>http://blog.dahanne.net/2007/09/04/installation-de-java-5-et-tomcat-55-sur-ubuntu-avec-apt-3/</link>
		<comments>http://blog.dahanne.net/2007/09/04/installation-de-java-5-et-tomcat-55-sur-ubuntu-avec-apt-3/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 22:16:29 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2007/09/04/installation-de-java-5-et-tomcat-55-sur-ubuntu-avec-apt-3/</guid>
		<description><![CDATA[<p>Avant la licence DLJ, pour installer Java sur Ubuntu il fallait télécharger un installateur binaire, ou utiliser un RPM (qu&#8217;il fallait auparavant &#171;&#160;alieniser&#160;&#187;); autant dire qu&#8217;on pouvait dire adieu au système de dépendance et de remise à jour de sa distrib linux préférée&#8230; Mais les temps ont changé et Sun a choisi de libérer peu [...]]]></description>
			<content:encoded><![CDATA[<p>Avant la licence <a href="http://linuxfr.org/2006/05/17/20827.html">DLJ</a>, pour installer Java sur Ubuntu il fallait télécharger un installateur binaire, ou utiliser un RPM (qu&#8217;il fallait auparavant &laquo;&nbsp;alieniser&nbsp;&raquo;); autant dire qu&#8217;on pouvait dire adieu au système de dépendance et de remise à jour de sa distrib linux préférée&#8230;<br />
Mais les temps ont changé et Sun a choisi de libérer peu à peu son langage phare&#8230;<br />
Aussi il existe désormais dans les dépôts multiverse le paquet &laquo;&nbsp;sun-java5-jdk&nbsp;&raquo;, que l&#8217;on installe le plus simplement du monde avec :<br />
<code>#apt-get install sun-java5-jdk</code><br />
Ah oui, il faut accepter la fameuse licence DLJ à la fin de l&#8217;installation&#8230;<br />
Par contre, pour Tomcat (dont les paquets sont dans le dépot universe), il faut faire attention&#8230;<br />
Il se trouve que les dépendances du paquet &laquo;&nbsp;tomcat5.5&#8243; référencent non pas la JDK de Sun, mais bien la JDK libre <a href="http://gcc.gnu.org/java/">gij,</a> aussi un malheureux :<br />
<code>#apt-get install tomcat5 tomcat5-admin tomcat5-webapps</code> vous installera certes Tomcat 5.5 mais aussi gij, et sera configuré pour utiliser gij.<br />
Si vous voulez, comme moi, utiliser Tomcat 5.5 avec la JDK Sun (je n&#8217;ai rien contre la gij, mais elle ne me semble pas encore mature, par exemple, il n&#8217;est pas possible d&#8217;utiliser le &laquo;&nbsp;security manager&nbsp;&raquo; de Tomcat avec gij), il vous faudra modifier certains fichiers.<br />
A commencer par /etc/default/tomcat5, décommentez la ligne :<br />
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun<br />
Cela permettra à Tomcat de démarrer avec la JDK de Sun.<br />
Pour le reste, mettez par défaut votre JAVA_HOME à /usr/lib/jvm/java-1.5.0-sun en exécutant :<br />
<code>export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun</code><br />
Enfin, il existe un répertoire, /etc/alternatives , qui contient des liens symboliques vers des logiciels par défaut de votre distribution.<br />
Repérez les liens vers tout ce qui commence par java :<br />
<code>ls -al /etc/alternatives/java*</code><br />
vous verrez notamment que java et javac (le compilateur) pointent vers gij et gcj&#8230;<br />
Il vous faut pour être sûr de toujours travailler avec la JDK de Sun, refaire ces liens en tapant, dans le répertoire /etc/alternatives :</p>
<div class="code">
#rm java<br />
#ln -s /usr/lib/jvm/java-1.5.0-sun/bin/java<br />
#rm javac<br />
#ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javac
</div>
<p>Après cela, vous ne devriez plus entendre parler de gij, et bénéficier des mises à jour de Tomcat5.5 et de la JDK Sun 5</p>
<p>Pour ce billet, je me suis beaucoup inspiré de la page <a href="http://doc.ubuntu-fr.org/tomcat">Tomcat de Ubuntu-fr.org</a> dont je vous recommande la lecture en cas de problème&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2007/09/04/installation-de-java-5-et-tomcat-55-sur-ubuntu-avec-apt-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monter un serveur FTP sur son système de fichiers avec FUSE et CurlFTPfs</title>
		<link>http://blog.dahanne.net/2007/03/09/monter-un-serveur-ftp-sur-son-systeme-de-fichiers-avec-fuse-et-curlftpfs/</link>
		<comments>http://blog.dahanne.net/2007/03/09/monter-un-serveur-ftp-sur-son-systeme-de-fichiers-avec-fuse-et-curlftpfs/#comments</comments>
		<pubDate>Fri, 09 Mar 2007 00:44:02 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2007/03/09/monter-un-serveur-ftp-sur-son-systeme-de-fichiers-avec-fuse-et-curlftpfs/</guid>
		<description><![CDATA[FUSE et CurlFTPfs, pourquoi faire ? <p>Je suis désormais abonné chez Free (le seul FAI à proposer l&#8217;IP fixe à un coût modéré) et après avoir installé et initialisé ma Freebox HD (boîtier qui permet de regarder/enregistrer la télé entre autres), j&#8217;ai voulu transférer des fichiers sur son disque dur afin de pouvoir les visionner [...]]]></description>
			<content:encoded><![CDATA[<h3>FUSE et CurlFTPfs, pourquoi faire ?</h3>
<p>Je suis désormais abonné chez Free (le seul FAI à proposer l&#8217;IP fixe à un coût modéré) et après avoir installé et initialisé ma Freebox HD (boîtier qui permet de regarder/enregistrer la télé entre autres), j&#8217;ai voulu transférer des fichiers sur son disque dur afin de pouvoir les visionner sur la télé&#8230;<br />
J&#8217;ai alors utilisé Konqueror et me suis dirigé vers :<br />
<code>ftp://freebox@hd1.freebox.fr/Disque dur/Video</code><br />
J&#8217;ai ainsi pu transférer mes fichiers par simple copier/coller&#8230;<br />
Mais comment faire aussi simple, voire même plus simple, pour transférer d&#8217;une machine qui n&#8217;a pas d&#8217;interface graphique (juste un shell) vers la Freebox HD ?<br />
Tout simplement en montant la freebox comme un système de fichier en utilisant FUSE et CurlFTPfs&#8230;</p>
<h3>Installation de FUSE et CurlFTPfs et premier montage</h3>
<p>Sous Ubuntu installer curlsFTPfs :<br />
<code>#apt-get install curlftpfs</code><br />
(il peut être utile à cette étape de charger le module fuse : <code># modprobe fuse</code>)<br />
Il vous installera alors curlftpfs, et fuse-utils, et créera un groupe &laquo;&nbsp;fuse&nbsp;&raquo;.<br />
<i>Edit : en fait, Ubuntu n&#8217;intègre pas le paquet CurlFTPFS, aussi, le meilleur moyen de l&#8217;installer est de suivre <a href="http://doc.ubuntu-fr.org/curlftpfs">l&#8217;article dédié à CurlFTPfs sur Ubuntu-fr.org.</a> (Merci à Cyril, et la prochaine fois poste un commentaire pour en faire profiter tout le monde !)</i>.<br />
Connectez vous alors sous un utilisateur non privilégié et créer un répertoire pour accueillir le montage :<br />
<code>% mkdir freebox</code><br />
Essayez alors de monter votre freebox sur ce point de montage :<br />
<code>curlftpfs ftp://freebox@hd1.freebox.fr freebox<br />
fuse: failed to exec fusermount: Permission denied<br />
</code><br />
Oups ! vous n&#8217;avez pas les droits &#8230;Mais souvenez vous, un groupe fuse a été créé !<br />
Avec root, ajoutez l&#8217;utilisateur au groupe fuse, et vérifiez :<br />
<del datetime="2007-03-27T09:21:48+00:00"><code># usermod -G fuse anthony</code><br />
<i><b>Attention, en faisant ceci j&#8217;ai supprimé tous les rattachements de  groupe de l&#8217;utilisateur (ie: il n&#8217;appartenait plus qu&#8217;au groupe &laquo;&nbsp;fuse&nbsp;&raquo; pour éviter ceci , veuillez plutôt tapez :</b></i><br />
<code># usermod -a -G fuse anthony</code><br />
</del><br />
Ceci est plus simple &#8230;.<br />
<code>#adduser anthony fuse<br />
# groups anthony<br />
anthony : anthony fuse</code><br />
OK, pour prendre en compte les changements, relogguez vous de nouveau avec votre utilisateur, et ré essayez !<br />
<code>% curlftpfs ftp://freebox@hd1.freebox.fr freebox</code><br />
(<i>Si vous avez encore une erreur , avec root, <code># chmod +x /usr/bin/fusermount</code></i>)<br />
Vous pouvez alors naviguer dans le disque dur de votre Freebox HD, comme si celui était en local !<br />
<code>%  cd freebox/Disque\ dur/Video<br />
~/freebox/Disque dur/Video%  cp /home/anthony/fichier.avi ./<br />
~/freebox/Disque dur/Video% ls<br />
fichier.avi</code><br />
vous pouvez aussi démonter l&#8217;attachement de votre freebox :<br />
<code>% fusermount -u /home/anthony/freebox</code></p>
<h3>Automatiser le montage curlftpfs au démarrage de la machine</h3>
<p>Pour cela il suffit de rajouter une entrée dans /etc/fstab , comme si on rajoutait une partition de disque ou un partage nfs, avec la ligne suivante :<br />
<code>curlftpfs#freebox@hd1.freebox.fr /home/anthony/freebox fuse allow_other 0 1</code><br />
En attendant le redémarrage un simple :<br />
<code>#mount /home/anthony/freebox</code><br />
fera l&#8217;affaire et tous les utilisateurs du système peuvent déposer/récupérer des fichiers sur la freebox HD</p>
<h3>Liens</h3>
<p>Je me suis bien inspiré de cet article :<br />
<a href="http://www.coagul.org/article.php3?id_article=466">Article sur FUSE et curlftpfs sur Coagul</a><br />
d&#8217;ailleurs leur article explique comment procéder avec un compte FTP nécessitant un mot de passe.<br />
<a href="http://fuse.sourceforge.net/wiki/index.php/FileSystems">Liste des montages possibles avec FUSE</a><br />
<a href="http://curlftpfs.sourceforge.net/">La page officielle de CurlFTPfs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2007/03/09/monter-un-serveur-ftp-sur-son-systeme-de-fichiers-avec-fuse-et-curlftpfs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Installation de CGI Proxy, solution de proxy http</title>
		<link>http://blog.dahanne.net/2007/03/09/installation-de-cgi-proxy-solution-de-proxy-http/</link>
		<comments>http://blog.dahanne.net/2007/03/09/installation-de-cgi-proxy-solution-de-proxy-http/#comments</comments>
		<pubDate>Thu, 08 Mar 2007 23:11:14 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[apache2]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2007/03/09/installation-de-cgi-proxy-solution-de-proxy-http/</guid>
		<description><![CDATA[<p>Ce tutorial vous expliquera comment mettre en oeuvre derrière Apache 2 le script CGI Proxy qui peut vous servir aussi bien à surfer anonyme (désactivation de scripts pendant la navigation), à accéder aux serveurs web de machine situées dans un réseau local, à contrer la censure &#8230;</p> Installer simplement CGI Proxy (sans SSL) <p>Tout d&#8217;abord, [...]]]></description>
			<content:encoded><![CDATA[<p>Ce tutorial vous expliquera comment mettre en oeuvre derrière Apache 2 le script CGI Proxy qui peut vous servir aussi bien à surfer anonyme (désactivation de scripts pendant la navigation), à accéder aux serveurs web de machine situées dans un réseau local, à contrer la censure &#8230;</p>
<h3>Installer simplement CGI Proxy (sans SSL)</h3>
<p>Tout d&#8217;abord, vous devez avoir les logiciels suivants installés sur votre machine:<br />
-un serveur sous Linux(çà devrait marcher sur tous les OS&#8230;)<br />
-Apache2 (un autre serveur web devrait faire l&#8217;affaire mais je n&#8217;ai pas testé&#8230;)<br />
-Perl<br />
Des commandes comme :<br />
<code>#apt-get install perl apache2</code><br />
devrait plus ou moins régler les choses sur Debian et les Debian-like&#8230;<br />
Pour la suite de l&#8217;article, je suppose que vous utilisez une distribution Debian Sarge.</p>
<p>Dirigez vous vers /etc/apache2/sites-available<br />
<code>#cd /etc/apache2/sites-available</code></p>
<p>Créez un nouveau site web, disons que vous avez le nom de domaine test.fr, créez ainsi le sous domaine cgiproxy.test.fr  :<br />
<code>#vim cgiproxy.test.fr</code></p>
<p>et insérez les lignes suivantes : </p>
<div class="code">
&lt;VirtualHost *&gt;<br />
    ServerAdmin admin@test.fr<br />
    DocumentRoot /var/www/cgiproxy.test.fr<br />
    ServerName cgiproxy.test.fr<br />
    ErrorLog /var/log/apache2/cgiproxy.test.fr.error.log<br />
    CustomLog /var/log/apache2/cgiproxy.test.fr.access.log common<br />
    AddHandler cgi-script .cgi<br />
&lt;Directory /var/www/cgiproxy.test.fr&gt;<br />
            AllowOverride FileInfo AuthConfig Limit<br />
            Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec<br />
            Order allow,deny<br />
            Allow from all<br />
            Options +ExecCGI<br />
&lt;/Directory&gt;<br />
&lt;/VirtualHost&gt;
</div>
<p>Pour que ce nouveau site soit fonctionne, n&#8217;oubliez de faire un lien symbolique de cette configuration dans /etc/apache2/sites-enabled :<br />
<code>#cd /etc/apache2/sites-enabled<br />
#ln -s /etc/apache2/sites-available/cgiproxy.test.fr</code></p>
<p>et de bien sûr créer le répertoire désigné dans votre configuration:<br />
<code>#mkdir /var/www/cgiproxy.test.fr</code></p>
<p>On redémarre Apache2 pour que la configuration soit prise en compte :<br />
<code>#/etc/init.d/apache2 restart</code></p>
<p><i>Petite note pour ceux qui n&#8217;ont pas de nom de domaine ou ne sachant pas comment créer un site sous Apache 2 :</i><br />
Vous avez sans doute dans /etc/apache2/sites-available un site (fichier de configuration) qui s&#8217;appelle 000-default, qui pointe vers des fichiers dans /var/www : vous pouvez aussi bien l&#8217;utiliser en adaptant cet article (chemins et sites)</p>
<p>Rendez vous dans /var/www/cgiproxy.test.fr et téléchargez le script CGI CGI Proxy :<br />
<code>#wget http://www.jmarshall.com/tools/cgiproxy/releases/cgiproxy.2.1beta15.tar.gz</code></p>
<p><i>Pour avoir la dernière version, veuillez consulter le site officiel <a href="http://www.jmarshall.com/tools/cgiproxy/">CGI Proxy</a></i></p>
<p>On décompresse l&#8217;archive ainsi récupérée :<br />
<code>#tar xvzf  cgiproxy.2.1beta15.tar.gz</code></p>
<p>Et si tout s&#8217;est bien passé, en dirigeant son navigateur vers http://cgiproxy.test.fr/nph-proxy.cgi on doit avoir le formulaire de saisie d&#8217;URL de CGI Proxy !<br />
Si toutefois cela ne fonctionne pas, n&#8217;hésitez pas à laisser un commentaire à cet article, mais commencez par vérifier :<br />
-que vos chemins sont bons<br />
-que vous n&#8217;avez pas renommé nph-proxy.cgi en quelquechose.cgi (il faut impérativement que le nom du fichier commence par nph-)<br />
-que le script est exécutable :<br />
<code>#chmod +x nph-proxy.cgi</code></p>
<h3>Installer CGI Proxy en mod ssl :</h3>
<p>Un peu plus difficile cette fois-ci, cette partie de l&#8217;article s&#8217;adresse aux personnes ayant déjà mis en place des sites Apache2 en mod_ssl.(un jour j&#8217;écrirai un article pour l&#8217;expliquer !).<br />
Pour faire simple, et rapide, inspirez vous de mon fichier de configuration :</p>
<div class="code">
&lt;VirtualHost *:443&gt;<br />
    ServerAdmin admin@cgiproxy.test.fr<br />
    DocumentRoot /var/www/cgiproxy.test.fr<br />
    ServerName cgiproxy.test.fr<br />
    ErrorLog /var/log/apache2/cgiproxy.test.fr.error.log<br />
    CustomLog /var/log/apache2/cgiproxy.test.fr.access.log common<br />
    AddHandler cgi-script .cgi<br />
 SSLEngine On<br />
 SSLCertificateFile /etc/apache2/ssl/apache.pem<br />
 SSLProxyEngine On<br />
&lt;Directory /var/www/cgiproxy.test.fr&gt;<br />
            AllowOverride FileInfo AuthConfig Limit<br />
            Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec<br />
            DirectoryIndex nph-protected.cgi<br />
            AuthUserFile /var/www/cgiproxy.test.fr/.htpasswd<br />
            AuthName &laquo;&nbsp;Welcome to Protected Site&nbsp;&raquo;<br />
            AuthType Basic<br />
            Require valid-user<br />
                 Options +ExecCGI<br />
&lt;/Directory&gt;<br />
&lt;/VirtualHost&gt;
</div>
<p>Un peu d&#8217;explication !<br />
<code>&lt;VirtualHost *:443&gt;</code><br />
vous permet de déclarer un serveur virtuel écoutant sur le port 443 (https par défaut)<br />
<code>AddHandler cgi-script .cgi</code><br />
permet à Apache 2 de lancer le moteur d&#8217;interpréteur de CGI lorsque les fichiers demandés terminent par .cgi<br />
<code>DirectoryIndex nph-protected.cgi</code><br />
indique à apache que le fichier index par défaut est : nph-protected.cgi (situé dans /var/www/cgiproxy.test.fr) lorsque qu&#8217;aucun nom de fichier est spécifié.<br />
<code> AuthUserFile</code><br />
permet de mettre en place une sécuristation HTTP Basic (login/mot de passe demandé pour accéder à la ressource)</p>
<h3>Liens</h3>
<p><a href="http://http://httpd.apache.org/docs/2.0/">Le site de documentation d&#8217;Apache2</a><br />
<a href="http://www.jmarshall.com/tools/cgiproxy/">Le site officiel de CGI Proxy</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2007/03/09/installation-de-cgi-proxy-solution-de-proxy-http/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Testing Hachoir, an open source metadata parser</title>
		<link>http://blog.dahanne.net/2006/12/27/testing-hachoir-an-open-source-metadata-parser/</link>
		<comments>http://blog.dahanne.net/2006/12/27/testing-hachoir-an-open-source-metadata-parser/#comments</comments>
		<pubDate>Wed, 27 Dec 2006 21:22:09 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2006/12/27/testing-hachoir-an-open-source-metadata-parser/</guid>
		<description><![CDATA[<p>Reading linuxfr.org, I found a new software, written in Python (it can then run on all -almost- platforms), that can extract very precious data from your files : metadata. For example, running hachoir on an avi movie will tell you which container, video codec, audio codec, etc.. were used; the length, the framerate, etc&#8230; of [...]]]></description>
			<content:encoded><![CDATA[<p>Reading <a href="http://linuxfr.org">linuxfr.org</a>, I found a new software, written in Python (it can then run on all -almost- platforms), that can extract very precious data from your files : metadata.<br />
For example, running hachoir on an avi movie will tell you which container, video codec, audio codec, etc.. were used; the length, the framerate, etc&#8230; of the movie.<br />
So, now that you want to test it, how can you install it on your (linux in this example) computer ?<br />
Well, it depends on your distribution&#8230;<br />
On Kubuntu (or Ubuntu), or Debian Sarge, I couldn&#8217;t install it, because of dependency problems, but if you want to give it a try, just add these 2 lines in your /etc/apt/sources.list :</p>
<div class="code">
deb http://plumbear.free.fr/debian etch main<br />
deb-src http://plumbear.free.fr/debian etch main
</div>
<p>, and :<br />
<code>#apt-get update<br />
#apt-get upgrade<br />
#apt-get install hachoir-parser hachoir-metadata<br />
</code><br />
If it doesn&#8217;t work, don&#8217;t worry, you can install easily it using &#8230; easy_install !<br />
<code>#apt-get install easy_install</code><br />
Almost done !<br />
Juste type in:</p>
<div class="code">#easy_install hachoir-parser<br />
#easy_install hachoir-metadata
</div>
<p>Easy isn&#8217;t it ?<br />
To use it, it&#8217;s also very simple :</p>
<div class="code">$ hachoir-metadata a_video_file.avi<br />
Common:<br />
- Duration: 42 min 10 sec<br />
- Producer: VirtualDub<br />
- Comment: Has audio/video index (2.5 MB)<br />
- MIME type: video/x-msvideo<br />
- Endian: Little endian<br />
Video stream:<br />
- Image width: 624<br />
- Image height: 352<br />
- Bits/pixel: 12<br />
- Compression: XviD MPEG-4 (fourcc:&nbsp;&raquo;xvid&nbsp;&raquo;)<br />
- Frame rate: 23.976023976<br />
Audio stream:<br />
- Channel: stereo<br />
- Sample rate: 48.0 KHz<br />
- Compression: MPEG Layer 3
</div>
<p>Well, I guess this file is a real video file !</p>
<p>To know more about this great software, just check this website out :<br />
<a href="http://hachoir.org">Hachoir official website</a>, and feel free to contact the author, I can testify he will answer your questions !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2006/12/27/testing-hachoir-an-open-source-metadata-parser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ecrire les données EXIF d&#8217;une image sous Linux avec Exiv2</title>
		<link>http://blog.dahanne.net/2006/09/19/ecrire-les-donnees-exif-dune-image-sous-linux-avec-exiv2/</link>
		<comments>http://blog.dahanne.net/2006/09/19/ecrire-les-donnees-exif-dune-image-sous-linux-avec-exiv2/#comments</comments>
		<pubDate>Mon, 18 Sep 2006 22:21:09 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2006/09/19/ecrire-les-donnees-exif-dune-image-sous-linux-avec-exiv2/</guid>
		<description><![CDATA[<p>Ayant fini de scanner les diapositives que j&#8217;ai ramené du Musée du Prado en début d&#8217;année, j&#8217;ai voulu les ajouter dans ma galerie photos, mais j&#8217;ai pensé qu&#8217;avec des tags, elles seraient certainement plus faciles à archiver et à retrouver. Le format de tag des photos JPEG par excellence est EXIF, grâce à EXIF vos [...]]]></description>
			<content:encoded><![CDATA[<p>Ayant fini de scanner les diapositives que j&#8217;ai ramené du Musée du Prado en début d&#8217;année, j&#8217;ai voulu les ajouter dans ma galerie photos, mais j&#8217;ai pensé qu&#8217;avec des tags, elles seraient certainement plus faciles à archiver et à retrouver.<br />
Le format de tag des photos JPEG par excellence est EXIF, grâce à EXIF vos appareils photos écrivent l&#8217;heure de prise des photos, la position, si le flash était activé ou non, etc &#8230;<br />
Mais mon scanner, lui, n&#8217;a rien écrit dans les méta données EXIF (en passant, il s&#8217;agit du très bon Epson Perfection 1670 qui fait aussi les diapositives, il fonctionne avec Linux, mais Kooka, gère très mal les diapositives et négatifs, alors mieux vaux scanner avec le logiciel propiétaire d&#8217;Epson&#8230;).<br />
Bref, il me fallait retaguer toutes ces infos&#8230;<br />
J&#8217;ai d&#8217;abord naïvement cru que Gwenview, ou Digikam ou Gimp2 au pire allait faire l&#8217;affaire&#8230;<br />
Pas moyen de leur faire éditer l&#8217;exif&#8230;<br />
J&#8217;ai alors découvert <a href="http://www.exiv2.org/">Exiv2, un logiciel en ligne de commande, pour éditer les tags Exif</a>.(il est dans les repositories Universe de Ubuntu, <code>apt-get install exiv2</code>)<br />
De prime abord un peu complexe, mais avec un fichier de config, cela va tout seul !<br />
Par exemple, pour donner les attributs à mon scan de Las Meninas, de Picasso, voici la ligne de commande à tapper :<br />
<code>exiv2 -m cmd_exiv2.txt Velazquez-Las_Meninas.jpg</code><br />
Avec pour contenu de cmd_exiv2.txt :</p>
<div class="code">
set Exif.Image.Artist &laquo;&nbsp;Velazquez&nbsp;&raquo;<br />
set Exif.Image.ImageDescription &laquo;&nbsp;Las Meninas&nbsp;&raquo;<br />
set Exif.Photo.UserComment &laquo;&nbsp;Scanned with Epson Perfection 1670, tagged with exiv2, slide from Museo Del Prado&nbsp;&raquo;
</div>
<p>Et le tour est joué !<br />
Cliquez ci après <a href="http://www.exiv2.org/tags.html">pour connaître l&#8217;ensemble des tags possibles dans EXIF</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2006/09/19/ecrire-les-donnees-exif-dune-image-sous-linux-avec-exiv2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertir ses vidéos avec Linux</title>
		<link>http://blog.dahanne.net/2006/09/11/convertir-ses-videos-avec-linux/</link>
		<comments>http://blog.dahanne.net/2006/09/11/convertir-ses-videos-avec-linux/#comments</comments>
		<pubDate>Sun, 10 Sep 2006 22:26:36 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/2006/09/11/convertir-ses-videos-avec-linux/</guid>
		<description><![CDATA[<p>J&#8217;utilise aujourd&#8217;hui sur mon ordinateur la distribution Linux Kubuntu (Ubuntu avec le gestionnaire de bureaux KDE) comme système d&#8217;exploitation principal, et il m&#8217;arrive de vouloir convertir des vidéos dans un tel ou tel format pour pouvoir les visionner sur le web ou sur mon ipod ou encore sur ma platine DVD/DivX. Heureusement pour moi, Linux [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;utilise aujourd&#8217;hui sur mon ordinateur la distribution Linux <a href="http://kubuntu.org">Kubuntu</a> (<a href="http://www.ubuntu.com">Ubuntu</a> avec le gestionnaire de bureaux <a href="http://www.kde.org">KDE</a>) comme système d&#8217;exploitation principal, et il m&#8217;arrive de vouloir convertir des vidéos dans un tel ou tel format pour pouvoir les visionner sur le web ou sur mon ipod ou encore sur ma platine DVD/DivX.<br />
Heureusement pour moi, Linux regorge de logiciels très puissant de conversion de vidéo.</p>
<p>Les essais suivants ont été réalisés sur une Debian Sarge Stable.</p>
<h3>Prérequis :</h3>
<p>Vous devez avoir les logiciels et librairies adéquates.<br />
Vous devez installer Mencoder, ffmpeg, et des librairies annexes (les codecs w32, mp3, etc&#8230;)<br />
Sur une debian j&#8217;ai utilisé les repositories suivants :<br />
/etc/apt/sources.list :</p>
<div class="code">
<p>
deb http://security.debian.org/ stable/updates main non-free contrib<br />
deb-src http://security.debian.org/ stable/updates main contrib non-free</p>
<p>deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free<br />
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free</p>
<p>deb ftp://ftp.debian.org/debian/ sarge main non-free contrib<br />
deb-src ftp://ftp.debian.org/debian/ sarge main non-free contrib</p>
<p>deb http://www.debian-multimedia.org stable main<br />
deb-src http://www.debian-multimedia.org stable main</p>
</div>
<p><code>#apt-get install mencoder ffmpeg w32codecs lame libavcodeccvs51 libavutilcvs49 libdvdread3 libpostproccvs51 libxvidcore4 mplayer-doc</code></p>
<p>N&#8217;hésitez pas à poster en commentaires les sources pour une distribution !</p>
<h3>Convertir une video pour la lire sur platine DivX Kiss DP 1500</h3>
<p><strong>Le problème :</strong></p>
<p>La platine KISS DP 1500 est un lecteur DVD/DivX (et Xvid) de salon qui a la particularité de pouvoir lire des fichiers videos se situant sur un réseau local (elle dispose d&#8217;un port ethernet pour cela). Ainsi pas besoin de graver ses films pour les regarder&#8230;<br />
Malheureusement, les formats d&#8217;encodage (codecs) MPEG 4 évoluent et le constructeur de ma platine, KISS, n&#8217;est pas très sérieux et ne remet plus à jour le firmware de la platine.(d&#8217;ailleurs ce n&#8217;est pas l&#8217;unique problème avec eux, ils ont aussi <a href="http://slashdot.org/articles/04/01/12/228247.shtml">violé une licence GPL</a>).<br />
Ainsi ma platine ne lit désormais que très peu de fichiers videos&#8230;</p>
<p><strong>La solution :</strong><br />
Convertir mes vidéos dans un format qu&#8217;elle supporte! (en l&#8217;occurence du XviD/MP3 avec un bitrate de 1200 et en 4/3  &#8211;> ne change pas l&#8217;aspect de l&#8217;image)<br />
Avec mencoder : </p>
<p><code>mencoder fichier_a_convertir.avi -ovc xvid -xvidencopts bitrate=1200 -oac mp3lame -aspect 4:3 -o nom_du_fichier_resultat.avi</code></p>
<p>Pour &laquo;&nbsp;industrialiser&nbsp;&raquo; le processus, voici le script shell qui vous permettra de convertir par lots :</p>
<div class="code">
if [ -z "$1" ]; then<br />
  echo &laquo;&nbsp;Usage: $0  list_of_video_files&nbsp;&raquo;<br />
  exit 1<br />
fi<br />
# video encoding bit rate<br />
V_BITRATE=1200<br />
while [ "$1" ]; do<br />
MENC_OPTS=&nbsp;&raquo;-ovc xvid -xvidencopts bitrate=$V_BITRATE -oac mp3lame -aspect 4:3&#8243;<br />
mencoder &laquo;&nbsp;$1&#8243; $MENC_OPTS -o &laquo;&nbsp;`basename $1 .avi`_convertie.avi&nbsp;&raquo;<br />
shift<br />
done
</div>
<p>Vous pouvez le télécharger en utilisant le lien ci-dessous :<br />
<a href="http://dahanne.net/scripts/mencoder_video_to_kiss_dp_1500.sh">mencoder_video_to_kiss_dp_1500.sh</a></p>
<p>Pour utiliser ce script, il vous suffit de taper :<br />
<code>sh mencoder_video_to_kiss_dp_1500.sh file1.avi file2.avi ./</code><br />
Pour convertir les fichiers file1.avi et file2.avi en file1_convertie.avi et file2_convertie.avi (dans le répertoire courant)</p>
<h3>Convertir une video pour la lire sur un Ipod Video  (5ème génération)</h3>
<p>Encore une fois, MEncoder va nous aider à transporter nos vidéos favorites dans notre poche.</p>
<p><strong>Le problème</strong><br />
L&#8217;Ipod Video ne supporte qu&#8217;un format très limité de formats de vidéos</p>
<p><strong>La solution</strong><br />
Cette simple ligne nous suffira :</p>
<p>ffmpeg -i fichier_d_entre.avi -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 192 -s 320&#215;240 -aspect 4:3 fichier_de_sortie.mp4</p>
<p>Je l&#8217;ai récupéré sur le site suivant :<a href="http://home.c-otto.de/ipod/">Video Ipod And Linux</a><br />
Pour &laquo;&nbsp;industrialiser&nbsp;&raquo; le processus, et laisser tourner la conversion pendant la nuit par exemple, j&#8217;ai concocté le petit script shell suivant :</p>
<div class="code">
<p>
#!/bin/sh<br />
if [ -z "$1" ]; then<br />
  echo &laquo;&nbsp;Usage: $0  list_of_video_files&nbsp;&raquo;<br />
  exit 1<br />
fi</p>
<p>while [ "$1" ]; do<br />
FFMPEG_OPTS=&nbsp;&raquo;-f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 192 -s 320&#215;240 -aspect 4:3&#8243;<br />
ffmpeg -i &laquo;&nbsp;$1&#8243; $FFMPEG_OPTS &laquo;&nbsp;`basename $1 .avi`.mp4&#8243;<br />
shift<br />
done
</p>
</div>
<p>Vous pouvez le télécharger en utilisant le lien ci-dessous :<br />
<a href="http://dahanne.net/scripts/ffmpeg_video_to_ipod_video.sh">ffmpeg_video_to_ipod_video.sh</a></p>
<p>Pour utiliser ce script, il vous suffit de taper :<br />
<code>sh ffmpeg_video_to_ipod_video.sh file1.avi file2.avi ./</code><br />
Pour convertir les fichiers file1.avi et file2.avi en file1.mp4 et file2.mp4 (dans le répertoire courant), tout juste prêtes à être transférées sur votre ipod.<br />
A ce propos, j&#8217;utilise encore iTunes pour transférer les vidéos, mais des personnes ont déjà réussi avec libgpod et amarok (LE lecteur de musique sous Linux); je reviendrai dessus quand j&#8217;aurai réussi <img src='http://blog.dahanne.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Convertir une video avec FFMPEG pour la lire sur le web avec un player flash</h3>
<p><strong>Le problème</strong><br />
Vous avez tourné un film de quelques minutes et forcément çà prend un peu de place&#8230;<br />
Alors oui, avec l&#8217;ADSL çà va assez vite à télécharger, encore faut il que la personne qui la télécharge dispose des bons codecs sur son ordinateur&#8230;<br />
Et en général, dans la famille, tout le monde ne sait pas installer de nouveaux codecs et/ou installer <a href="http://videolan.org">VLC</a>.<br />
Ou alors il faut encoder en Windows Media (oui mais y&#8217;a que sous Windows qu&#8217;on trouve les derniers encodeurs) ou encore en Real ou encore Quicktime (en fait c&#8217;est pas tout le monde qui les a installés sur son ordinateur..)<br />
Pas de panique ! Macromedia (pardon, Adobe&#8230;) avec son Flash propriétaire a compris qu&#8217;il pouvait profiter de son parc installé de lecteur Flash (pour mémo, 98% des internautes ont Flash sur leur machine aujourd&#8217;hui).<br />
Ainsi les videos au format Flash s&#8217;impose sur le Web&#8230;<br />
Mais alors pourquoi se fatiguer à les convertir soit même lorsque YouTube, GoogleVideos et consorts ont une super interface super ergonomique pour le faire ?<br />
Et bient tout simplement, pour éviter de passer par un tiers qui prend le temps qui veut pour convertir la vidéo et qui surtout disposera de votre contenu sur ses serveurs (que vous ne contrôlez à priori pas trop)&#8230;</p>
<p><strong>La solution</strong><br />
Commençons par convertir la vidéo en flv (format de video de flash)<br />
<code>ffmpeg -i movie.avi -s 320x240 -r 15 -b 250 -ar 22050 -ab 48 movie.flv</code><br />
Vous remarquerez que la video movie.avi est ici convertie en 324&#215;240 en 15 images/seconde, bitrate video de 250 kbps et le son échantillonné à 22 050Hz au bitrate 48kbps.<br />
Bref, vous pouvez modifier ces paramètres à volonté.<br />
Pour faire bien, nous allons prendre un cliché de la video :<br />
<code>ffmpeg -i movie.avi -f mjpeg -t 0.001 movie.jpg</code></p>
<p>Pour lire cette vidéo, nous avons besoin d&#8217;un lecteur de flv, au format Flash (SWF).<br />
Il existe le lecteur Flash libre <a href="http://flowplayer.sourceforge.net/">FlowPlayer</a> afin de lire ces vidéos.<br />
Pour l&#8217;utiliser, une fois qu&#8217;il est téléchargé, écrivez ce code dans un fichier HTML en faisant (bien) attention aux chemins :</p>
<div class="code">
&lt;object type=&nbsp;&raquo;application/x-shockwave-flash&nbsp;&raquo; data=&nbsp;&raquo;[your site]/FlowPlayer.swf&nbsp;&raquo; width=&nbsp;&raquo;320&#8243; height=&nbsp;&raquo;263&#8243; id=&nbsp;&raquo;FlowPlayer&nbsp;&raquo;&gt;<br />
  &lt;param name=&nbsp;&raquo;allowScriptAccess&nbsp;&raquo; value=&nbsp;&raquo;sameDomain&nbsp;&raquo;/&gt;<br />
  &lt;param name=&nbsp;&raquo;movie&nbsp;&raquo; value=&nbsp;&raquo;[your site]/FlowPlayer.swf&nbsp;&raquo;/&gt;<br />
  &lt;param name=&nbsp;&raquo;quality&nbsp;&raquo; value=&nbsp;&raquo;high&nbsp;&raquo;/&gt;<br />
  &lt;param name=&nbsp;&raquo;scale&nbsp;&raquo; value=&nbsp;&raquo;noScale&nbsp;&raquo;/&gt;<br />
  &lt;param name=&nbsp;&raquo;wmode&nbsp;&raquo; value=&nbsp;&raquo;transparent&nbsp;&raquo;/&gt;<br />
  &lt;param name=&nbsp;&raquo;flashvars&nbsp;&raquo; value=&nbsp;&raquo;baseURL=[base URL]&amp;videoFile=movie.flv<br />
    &amp;autoPlay=false&amp;loop=false&amp;autoBuffering=false<br />
    &amp;splashImageFile=movie.jpg&nbsp;&raquo;/&gt;<br />
&lt;/object&gt;
</div>
<p>Et le tour est joué !!!<br />
Pour parfaire le résultat, vous pouvez aussi ajouter un index à vos vidéos pour pouvoir afficher une barre de défilement.<br />
Vous pouvez alors utiliser l&#8217;outil libre <a href="http://rubyforge.org/frs/?group_id=1096">FlvTool2</a>, écrit en Ruby.<br />
Il vous faut alors installer ruby sur votre système (sur debian quelques apt-get sur ruby suffisent&#8230;) et télécharger la tarball de Flvtool2, l&#8217;ouvir avec<br />
<code><br />
tar xvzf flvtool2-1.0.6.tgz<br />
</code><br />
et lire les instructions du README.<br />
Cela étant fait, le rajout de vos index se feront simplement avec la commande :<br />
<code>flvtool2 -U movie.flv</code><br />
<b>Attention à ce que les noms de fichiers ne soient pas trop longs !!!</b><br />
Tout ceci est &laquo;&nbsp;industrialisé&nbsp;&raquo; dans le script shell suivant :</p>
<div class="code">
#!/bin/sh<br />
if [ -z "$1" ]; then<br />
  echo &laquo;&nbsp;Usage: $0  list_of_video_files&nbsp;&raquo;<br />
    exit 1<br />
fi<br />
while [ "$1" ]; do<br />
    ffmpeg -i $1 -s 320&#215;240 -r 15 -b 250 -ar 22050 -ab 48 $1.flv<br />
    ffmpeg -i $1 -f mjpeg -t 0.001 $1.jpg<br />
    flvtool2 -U $1.flv<br />
    shift<br />
done
</div>
<p><b><i>Ce dernier tutorial sur l&#8217;encodage d&#8217;une video en flash est une traduction libre de l&#8217;article :<br />
<a href="http://scott.yang.id.au/2006/07/flash-video-ffmpeg-flowplayer/">Posting Flash Videos with FFmpeg and FlowPlayer<br />
</a> par <a href="http://scott.yang.id.au/">Scott Yang</a> </i></b></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2006/09/11/convertir-ses-videos-avec-linux/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Serveur FTP sécurisé avec openssh accessible en SFTP</title>
		<link>http://blog.dahanne.net/2005/07/12/serveur-ftp-securise-avec-openssh-accessible-en-sftp/</link>
		<comments>http://blog.dahanne.net/2005/07/12/serveur-ftp-securise-avec-openssh-accessible-en-sftp/#comments</comments>
		<pubDate>Tue, 12 Jul 2005 12:14:51 +0000</pubDate>
		<dc:creator>anthony.dahanne</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.dahanne.net/?p=185</guid>
		<description><![CDATA[<p>Vous aimeriez partager des fichiers avec vos amis , mais ne vous faîtes pas à l’idée que toute personne entre votre machine et celles de vos amis peut intercepter vos données.</p> <p>C’est effectivement le cas lorsque l’on utilise des protocoles comme FTP ou HTTP : les informations comme le mot de passe, les entêtes de [...]]]></description>
			<content:encoded><![CDATA[<p>Vous aimeriez partager des fichiers avec vos amis , mais ne vous faîtes pas à l’idée que toute personne entre votre machine et celles de vos amis peut intercepter vos données.</p>
<p>C’est effectivement le cas lorsque l’on utilise des protocoles comme FTP ou HTTP : les informations comme le mot de passe, les entêtes de vos fichiers, etc, transitent en clair .<br />
Heureusement, OpenSSH, le logiciel serveur libre SSH (qui permet de se logguer dans un terminal à distance en sécurisé) sous Linux implémente des fonctions de copie de fichiers.<br />
Pré requis :</p>
<p>Je suppose que vous utilisez Debian ou Ubuntu (si ce n’est pas le cas, remplacez les &laquo;&nbsp;apt-get install&nbsp;&raquo; par &laquo;&nbsp;urpmi&nbsp;&raquo; ou autres).<br />
Vous devez aussi avoir installé le serveur SSH (sshd).</p>
<h3>On commence par Installer scponly :</h3>
<p><code># apt-get install scponly</code><br />
Il vous demande si vous voulez créer le fichier dans /usr/sbin/scponlyc, répondez oui, çà vous permettra de créer des cages (chroot) dans la home de nouveaux utilisateurs.<br />
On crée un nouvel utilisateur avec uniquement les droits de copie de fichiers dans sa home</p>
<p>Maintenant, nous allons créer un nouvel utilisateur sur le système , qui n’aura le droit de se connecter sur la machine que pour transférez des fichiers, et ce uniquement dans son arborescence (en utilisant chroot pour créer une cage dans son répertoire).<br />
Heureusement, les maintainers du paquet scponly nous facilite la vie avec un script déjà tout fait.<br />
Allez dans /usr/share/doc/scponly/setup_chroot (si vous n’avez pas Debian faîtes un find pour retrouver ce script shell), décompactez l’archive (qui a pour extension .gz) en faisant un gunzip. # gunzip setup_chroot.sh.gz Rendez le fichier décompacté exécutable :<br />
<code># chmod +x  setup_chroot.sh</code><br />
exécutez le :<br />
<code>./setup_chroot.sh</code><br />
Il vous demande de donner le login du nouvel utilisateur, son home directory, (et son sous répertoire d’écriture si vous désirez en créer un) et son mot de passe.</p>
<h3>S’y connecter</h3>
<p>Une fois ces détails renseignés, votre nouvel utilisateur pourra se connecter à votre système (sur le port 22 par défaut, celui de ssh) pour transférer des fichiers de ou vers son répertoire sur votre machine en utilisant le protocole sécurisé SSH (et le serveur sftp server, couche de transferts de fichiers de SSH).<br />
Par exemple, votre ami pourra utiliser l’excellent filezilla sous windows ou sftp sous Linux.</p>
<h3>Conclusion</h3>
<p>L’intérêt d’utiliser scponly en plus de sshd, est que votre utilisateur nouvellement créé ne pourra pas se promener sur votre système de fichiers (à part dans sa home) et ne pourra non plus exécuter du code, car son shell est scponly, qui ne permet que les commandes à bases de scp (cp entre 2 machines connectées en ssh).<br />
Il existe d’autres moyens de donner accès à un serveur de fichiers en mode sécurisé (je pense notamment à l’utilisation de FTP-SSL) mais ils sont beaucoup moins faciles à mettre en ouevre (il faut créer un certificat de sécurité et bien connaître les configs ProFTPD et consorts).<br />
J’ai rédigé cet article après avoir pris connaissance de scponly dans le numéro de Juillet/Aout 2005 de Linux Magazine (dans le Debian corner).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dahanne.net/2005/07/12/serveur-ftp-securise-avec-openssh-accessible-en-sftp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic

Served from: blog.dahanne.net @ 2012-02-04 16:42:35 -->
