Créer un clip vidéo (waveform) pour n'importe quel mp3 avec ffmpeg/avconv

J'avais envie de créer pour une collection de fichiers audio une vidéo  affichant une courbe audio, afin d'avoir quelque chose de mieux à afficher sur youtube qu'un bête logo.
( le resultat final est visible ici: https://www.youtube.com/watch?v=oI32z19iu_o )

En utilisant ffmpeg et son filtre "showvaves", on arrive a un résultat assez convaincant.

ffmpeg -i mon_fichier.wav -filter_complex "[0:a]showwaves=s=720x576:mode=cline:rate=12:scale=log:colors=Black|LightBlue,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -c:a aac -b:a 192k ma_video.mp4

Cette commande va créer a partir d'un fichier wav un video au format mp4, en utilisant les bons codecs que recommande youtube (x264 pour la video, aac pour l'audio)
La vidéo sera en résolution DVD ce qui est largement suffisant a mon avis pour le web, mais vous pouvez remplacer 720x576
par 1920×1080 si vous voulez absolument du full hd.

Maintenant que l'on a une belle courbe audio, pourquoi ne pas ajouter une image en fond ?
Cette fois ci nous allons utiliser le filtre "blend" avec un fichier mon_logo.jpg, qui devra être à la même résolution que le fichier audio (ici 720x576 donc) L'image sera ici en arrière plan, car mon_logo.jpg est specifié en deuxième paramètre sur la ligne de commande.

ffmpeg -i ma_video.mp4 -i mon_logo.jpg -filter_complex "blend=all_mode=overlay:all_opacity=0.7" ma_video_logo.mp4

Pinky syndrom ou syndrome du petit doigt sur clavier

La semaine dernière je me suis rendu compte que mon auriculaire de la main gauche était victime du"pinky syndrome" : la partie médiane de l’auriculaire étant particulièrement douloureuse alors que le reste de la main en pleine forme. J'ai rapidement relié ceci a un abus de l'utilisation de l'auriculaire sur mon clavier, j'utilise en effet l'auriculaire de la main gauche a la fois pour acceder à la touche 'shift', à la touche 'Control' et a la touche 'esc'
Quand on travaille avec  Eclipse, Vim et la console Unix, Dieu sait si ces touches sont souvent utilisées !

Comme solution à ce problème j'ai configuré deux options pour mon clavier:
* la touche 'Control' de gauche est échangée avec la touche 'Alt' de gauche, ce qui me force à utiliser le pouce, plus musclé, pour entrer 'Control'.
* la touche 'Caps lock' est replacée par une touche 'Control'.
* j'essaye d'utiliser 'Control-C' pour passer an mode commande dans vim, ce qui évite d'aller chercher une touche bien loin de la position départ de la main.

Les deux premières options se configurent avec
XKBOPTIONS="ctrl:swap_lalt_lctl,caps:ctrl_modifier,terminate:ctrl_alt_bksp"

dans  /etc/default/keyboard

ou avec setxkbmap -model pc105 -layout us -option ctrl:swap_lalt_lctl,caps:ctrl_modifier,terminate:ctrl_alt_bksp en ligne de commande.

Je réfléchis enfin à passer en QWERTY, de nombreuses touches dont Unix et C abusent deviennent alors accessibles sans combinaison ( notamment /, [ et ] )

Note: la liste complète des options d'agencement se trouve dans /usr/share/X11/xkb/rules/base.xml, ces options sont accessibles graphiquement via gnome-tweak-tool.

Edit : on obtient le même résultat en insérant dans le fichier .Xmodmap:


clear control
clear mod1
keycode 37 = Alt_L Meta_L
keycode 64 = Control_L
add control = Control_L Control_R
add mod1 = Alt_L Meta_L



On peut aussi remplacer ce Caps Locks bien inutile par un Shift avec l'entrée suivante:
keycode 66 = Shift_L NoSymbol Shift_L

Le détail du fonctionnement du clavier sous Linux / X11 est expliqué en détail ici.

How to setup & run Oh-my-vagrant on Debian (with libvirt/KVM)

Last friday, James Shubin (purpleidea) came to the Montreal Red Hat office to talk about his project: Oh-my-vagrant. In a nutshell, Oh-my-vagrant (also called OMV) is a Vagrant wrapper, that helps you easily manipulate your dev environments. By easily, I mean: it’s a couple of minutes (sometimes seconds) before you have your env up’n’running with […]

Débit d'un réseau TCP/IP avec iperf

A toutes fin de comparaison utiles, j'ai décidé de collecter la vitesse de transfert brute de différents réseaux physiques auquel j'ai accès , via la commande iperf.

 Commandes utilisées

Commande client: iperf -c nasi.local -w 65536 -p 12345 -t 60
Commande server:iperf -s -w 65536 -p 12345
NB: les cartes réseaux utilisées sont indiqués par leur nom de pilote Linux ou FreeBSD

Réseau Gigabit Ethernet

Intel e1000e sur le serveur
e1000e sur le client
726 Mbits/sec

Réseau Fast Ethernet

VIA Technologies Rhine I/II/III Ethernet sur le serveur (FreeBSD vr)
e1000e  sur le client
77.1 Mbits/sec


Réseau Powerline, distance 20m / 1 Etage,
Netgear Powerline 200

 6.45 Mbits/sec

Réseau Wifi 11g 54Mb/s, Link Quality=70/70  Signal level=-34 dBm

Atheros 5212 sur le serveur (FreeBSD ath)
iwlwifi sur le client

13.2 Mbits/sec

Réseau Wifi 11n 150Mb/s, Link Quality=70/70  Signal level=-34 dBm

Point d'accès UPC Connect Box
iwlwifi sur le client

 22.3 Mbits/sec





lshell 0.9.17 is out!

After nearly two years of coding (and running), I have finally released a new version of lshell-0.9.17. Many new features, bug fixes and news tests are included is this new release. Check it out! === v0.9.17 14/08/2015 === * Added include_dir directive to include split configuration files from a directory. * Added possibility of using […]

No time for poetry, this is URGENT!!!

  Photo credit: António Segurado under licence CC BY-NC 3.0 Not long ago, poets would visit the cafés to sing and recite poetry. There were no radios. Most of the people were illiterate. They were closer to nature; they had time. Today, many things have changed for the better. But we’ve lost track of time, […]

Déménagement...

Back to Wordpress et changement de domaine.
Le site que vous cherchez n'est plus ici.
J'ai re-basculé sur Wordpress, préférant m'éloigner de Blogger. 

lefinnois.net est maintenant en veille avant redirection définitive.
L'ensemble du contenu et les billets futurs sont maintenant sur :

http://www.noyf.biz

Désactiver la mise en veille à distance sous Gnome3

Par défaut mon ordinateur de bureau se met en veille au bout de 30 minutes, une mesure d'économie bien pratique.
Seulement de temps en temps, j'ai besoin d'y acceder par ssh, et après 30 minutes d'activité, il se remet en veille.
Le paramètre de mise en veille est configurée dans le registre dconf, qui peut se lire avec:
 
gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout
1800 # 30 min x 60 sec

Pour désactiver la mise en veille, on met le timeout à 0.

dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0

La commande dbus-launch est nécessaire en cas de connexion distante.



Comprendre ce que fait le Javascript en 30 secondes et 3 commandes

Si vous avez déjà vu un terminal et une ligne de commande sous Linux, vous êtes à moins de 30 secondes de votre premier programme Javascript.

Top Chrono:

* ouvrez une autre fenêtre avec votre navigateur, allez sur une page au hasard
(par exemple: la mienne !), tout en gardant ce texte sous les yeux

* sur cette nouvelle fenêtre appuyez sur F12 sur votre navigateur, pour activer les outils de développement
 Vous devriez voire apparaître une fenêtre semblable à ceci en bas:


* dans les outils de développements, cliquer sur l'onglet indiqué "Console".
Cet onglet contient tout en bas une ligne deux chevrons qu'on appelle un prompt, et dans lequel on peut taper des commandes:


* cliquer dans la barre au niveau du prompt, et entrez le texte suivant:

console.log('bonjour la companie');

Voila il s'agit de votre première commande Javascript ! N'oubliez pas les guillemets, le point virgule est optionnel mais fait partie des bonnes habitudes.

* on peut tenter comme dans un shell unix/linux d'autres commandes:

new date(); 
2 + 2 ;

* on peut obtenir des informations sur la page web que l'on est en train de lire:

console.log(document.domain);
console.log(document.title);

* et encore mieux on peut le modifier !

document.title = 'ca me plait pas mal';
document.bodyInnerHTML = 'a small text'
document.bodyInnerHTML = '<h1> a bigger title </h1>'

Voila vous avez découvert ce qu'est le Javascript, un langage pour lire, créer et modifier le contenu d'une page web !



Specify your Google Maps Javascript API version!

I woke up this morning to find out that the Google maps widget that I used on my ads website http://sooksook.com was pop-ing out regardless of the block visibility set on the div. How it is supposed to work: the block is hidden until the user clicks on a specific area that triggers an onClick() and […]