PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

kao : FFmpeg et VP9

lundi 17 août 2015 à 10:07

Le VP9 commence à pointer son nez comme remplaçant du VP8 et concurrent crédible du H265/HEVC
Le principal intérêt de ces nouveaux codecs et de faire diminuer la bande passante, ou le poids des fichiers pour une qualité équivalente.

Le VP9 commence a bien être géré par un ensemble d’application, et de lecteur même si certaines versions de VLC sont touchés par un bug de lecture.

Donc pour être prêt, ou bien se lancer directement voici quelques commandes pour encoder en VP9 avec ffmpeg rapidement :

  1. Conversion :

    ffmpeg -i fichiersource.mkv -vcodec libvpx-vp9 -crf 10 -vb 4M -threads 8 fichierdestination.mkv
    • -crf 10 servant à établir un niveau de qualité entre 0 et 63 (plus petit = meilleure qualité)
    • -vb 4M servant à donner un objectif de débit, ici 4Mb/s
    • -threads 8 force le nombre de coeur à 8, l’autodétection ne fonctionnant pas encore.

    A défaut de vlc, on peut faire des relectures avec ffmpeg directement :

    ffplay fichierdestination.mkv
  2. Enregistrement du bureau :

    Pour des captures d’écrans en vp9 directement on ajoutera le paramètre « -speed » afin de privilégier la vitesse d’encodage plutôt que la qualité (4 étant plus rapide que 1).

    ffmpeg -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libvpx-vp9 -crf 4 -vb 2M -speed 4 -threads 8 output-vp9.mkv


    FFmpeg n’est pas obligatoire le plus simple pour faire des captures d’écrans, notamment si l’on veut qu’une seule fenêtre et/ou du son en même temps. Il faudra peut-être passer par :
  3. Inclusion dans une page web :

    Grâce au html 5 il est maintenant assez facile d’inclure dans une page web une vidéo en vp9, le mieux étant d’utiliser le container webm pour faire cela :

    Avec toujours un léger doute pour le support de ce format par Internet Explorer, Microsoft préférant mettre en avant ses formats. ( En même temps c’est leur problème pas le notre :) )

  4. Conclusion :

    Voilà, donc une introduction à ce nouveau codec libre déjà prometteur. Pour en savoir plus :

Gravatar de kao
Original post of kao.Votez pour ce billet sur Planet Libre.

Influence PC : Les 4 clics pour chiffrer un support de stockage sous Linux

lundi 17 août 2015 à 01:56

Simple et efficace, le chiffrement natif de Linux (LUKS) peut être réalisé via le logiciel Disques sous Ubuntu (formellement gnome-disk-utility présent dans d’autres distributions). Le mode opératoire est ensuite simple : on branche puis on tape son mot de passe et c’est terminé.

1- Lancer l’utilitaire Disques, sélectionner votre périphérique, faire de la place

Capture du 2015-08-16 01:35:38

2- Valider la suppression de la bonne partition

Capture du 2015-08-16 01:36:14

3- Ajouter une nouvelle partition de type LUKS + Ext4

Capture du 2015-08-16 01:36:39

4- Saisir une phrase (ou un mot) de passe puis créer la partition

Capture du 2015-08-16 01:38:51

Cet outil utilise LUKS, qui est à ma connaissance la seule méthode de chiffrement de partition dont aucune vulnérabilité ou faiblesse n’est connue, contrairement à EncFS ou TrueCrypt. Aucun utilitaire n’est requis pour accéder à vos données depuis un autre ordinateur puisque l’outil est intégré au noyau Linux.

Illustration sous CC BY SA 2.0 réalisée par Tim Gage.

Gravatar de Influence PC
Original post of Influence PC.Votez pour ce billet sur Planet Libre.

Nicolas Lœuillet : wallabag v2, quelles nouveautés ?

dimanche 16 août 2015 à 13:30

Bon maintenant, on ne rigole plus, depuis que j'ai annoncé aux RMLL qu'une alpha de wallabag v2 allait sortir en septembre 2015, il a fallu se mettre à bosser activement.

Listons donc les dernières nouveautés de ce mois d'août.

Un peu de technique pour une fois

OK, wallabag, c'est bien, ça marche, mais c'est quoi dedans ?

Pour cette v2, on utilise le framework Symfony2 (oui c'est du PHP, et alors ? #troll). Parmi les bundles ajoutés dernièrement, arrêtons-nous sur LexikFormFilterBundle. C'est celui que nous utilisons pour les filtres (voir plus bas).

Ce bundle est vraiment bien fait et très simple d'utilisation. Si on souhaite ajouter un filtre sur les articles présents dans wallabag, une seule ligne est nécessaire (la condition est que la donnée filtrée doit se trouver en base).

Par exemple, le filtre pour le temps de lecture, c'est ça :

$builder->add('readingTime', 'filter_number_range');

Le bundle va se charger d'ajouter les listes sur le formulaire et d'ajouter ce qu'il faut à la requête pour retourner les bons résultats.

Capistrano

capistrano, c'est entre autre un outil de déploiement. Bon, c'est en Ruby, personne n'est parfait #troll.

J'ai mis cet outil en place pour le site de démo de la v2. À terme, Framabag sera également mis à jour de cette façon (mon état lors des mises en prod de Framabag s'en trouvera alors amélioré, j'aurai le poil soyeux, etc.).

L'avantage de cet outil, c'est que vous n'avez plus à démarrer Filezilla pour mettre à jour votre appli en envoyant vos milliers de fichiers.
Pour résumer, capistrano va :

Voici le fichier que j'utilise pour mettre à jour le site de la v2 :

set :application, 'wallabag'
set :repo_url, 'git@github.com:wallabag/wallabag.git'

set :ssh_user, 'mon_user'
server 'mon_serveur', user: fetch(:ssh_user), roles: %w{web app db}

set :scm, :git

set :format, :pretty
set :log_level, :info
# set :log_level, :debug

set :composer_install_flags, '--no-dev --prefer-dist --no-interaction --optimize-autoloader'

set :linked_files, %w{app/config/parameters.yml}
set :linked_dirs, %w{app/logs web/uploads}

set :keep_releases, 3

after 'deploy:finishing', 'deploy:cleanup'

Les filtres

Voila, on a fini avec la technique, repassons aux choses sérieuses.

C'est une fonctionnalité attendue, et je suis bien content qu'elle fasse son arrivée.

Estimation du temps de lecture

Dans wallabag, depuis toujours, on vous donne une estimation du temps de lecture nécessaire pour un article. OK, c'est pratique quand on commence à lire l'article, on sait à quoi s'en tenir.

Problématique : je sais que j'ai 15 minutes devant moi, je veux lire un article, tu me proposes quoi, wallabag ?

Solution : le filtre par temps de lecture (screenshot plus bas).

Nom de domaine

Problématique : je veux lire tout un dossier qui se trouve sur monsite.fr et que j'ai archivé en plusieurs fois dans wallabag. Le moteur de recherche, c'est pas mal, mais pas la meilleure solution.

Solution : le filtre par nom de domaine.

Date de sauvegarde

Problématique : ah, j'ai sauvegardé un article super intéressant l'autre jour, mais je ne me souviens pas de son titre. Je sais que c'était lundi.

Solution : le filtre par date de sauvegarde.

Type d'articles

Problématique : j'ai mis de côté pas mal de vidéos, et je veux me faire une petite séance cinéma. Je fais comment dans wallabag, hein ?

Solution : le filtre par type d'articles (vidéo, audio, image, PDF, etc.).

Nouveau design : material

Depuis que le projet a changé de nom (pour rappel, on est passé de poche à wallabag), le projet était doté du thème baggy. Il y a quelques mois, quand nous avons commencé la v2, nous avons continué avec ce thème, faute de nouveauté (et comme nous ne sommes que développeurs, impossible pour nous de créer quoique ce soit de joli).

Et puis début août, un contributeur venu de nulle part (c'est beau le monde de l'opensource) arrive avec material.

Page de login

login

Page d'accueil

page d'accueil

Article

article

Configuration

config

On peut tester ?

Bien sur. C'est même vivement conseillé. Ça se passe ici : http://v2.wallabag.org (login wallabag, password wallabag).

Elle sort vraiment en septembre cette première alpha ? Oui ! Regardez ce qu'il nous reste à faire. Autant dire que c'est largement jouable.

Forcément, j'en parlerai ici, vous ne raterez pas l'info.

Gravatar de Nicolas Lœuillet
Original post of Nicolas Lœuillet.Votez pour ce billet sur Planet Libre.

PostBlue : Compilation distribuée sur un réseau local

dimanche 16 août 2015 à 13:07

Suite à la discussion avec Jeko concernant Arch Linux ARM sur un Raspberry Pi 2 et la possibilité d'utiliser Ghost — sachant que Ghost fonctionne idéalement avec Node.js 0.10 et que ne sont disponibles que les versions 0.8 (ne fonctionne pas) et 0.12 (support instable pour le moment) pour Arch Linux ARM —, j'ai essayé de compiler Node.js en version 0.10 sur mon Raspberry Pi 2 (sans succès pour le moment, on ne s'improvise pas mainteneur de projet).

  1. Mes premières compilations échouaient.
  2. Ça prend du temps de compiler sur un Raspberry Pi, même un deuxième du nom.
  3. Pour vérifier que mon PKGBUILD (recette de compilation pour Arch Linux qui intègre le produit de celle-ci au gestionnaire de paquets) était correct, je relançais à chaque fois une compilation.
  4. Ça prend du temps de compiler sur un Raspberry Pi…

Maître : Raspberry Pi 2

J'allais donc certainement y passer des jours à coups d'essai-erreur, corriger le PKGBUILD, tester, recorriger suite à une nouvelle erreur. Mais en jetant un œil au fichier de configuration /etc/makepkg.conf — makepkg étant l'utilitaire permettant de construire les paquets sur base d'un PKGBUILD sous Arch Linux —, je vis qu'il était possible de distribuer la compilation sur mon réseau local : les machines sur mon réseau allaient pouvoir servir à compiler pour le Raspeberry et ainsi lui alléger la tâche. Le programme mentionné dans ledit fichier de configuration est distcc.

#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(!distcc color !ccache check !sign)
#  A negated environment option will do the opposite of the comments below.
#
#-- distcc:   Use the Distributed C/C++/ObjC compiler
#-- color:    Colorize output messages
#-- ccache:   Use ccache to cache compilation
#-- check:    Run the check() function if present in the PKGBUILD
#-- sign:     Generate PGP signature file
#
BUILDENV=(distcc color ccache check !sign)

Pour activer la distribution de la compilation du code, il faut donc enlever le point d'exclamation devant distcc. J'en ai aussi profité pour activer le cache de compilation ccache. Du coup, j'ai dû installer les deux programmes :

pacman -Sy distcc ccache --needed

Deux sections supplémentaires doivent être peuplées dans /etc/makepkg.conf :

  1. MAKEFLAGS, les arguments qui seront envoyés à la commande make. Où « X » est la somme du nombre maximal de threads par serveur (machine pouvant exécuter la compilation).

    #-- Make Flags: change this for DistCC/SMP systems
    MAKEFLAGS="-jX"
    
  2. DISTCC_HOSTS, l'argument à ajouter sont les adresses IP des serveurs qui vont accueillir la compilation. Chaque adresse est suivie d'une barre oblique ("/") et du nombre de tâches qui pourront être lancées sur ce serveur. De plus, il est une pratique courante de définir le nombre de tâches par machine comme la somme du nombre de cœurs physiques (cœurs par socket) et du nombre de threads par cœurs (dans le cadre de la technologique hyper-threading), le tout plus 1. Sur l'Intel i7-3667U de Karl, la commande nproc me renvoie la valeur 4, qui est la première somme. Je déclarerai 5 tâches dans la configuration de distcc. Sur mon réseau local, karl a l'adresse fixe 192.168.1.69. Ma configuration de distcc sera donc la suivante :

    #-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
    #-- specify a space-delimited list of hosts running in the DistCC cluster.
    DISTCC_HOSTS="192.168.1.69/5"
    

Documentation concernant la compilation distribuée :

Esclave :

Pour pouvoir compiler des paquets pour architecture ARM (armv7l dixit lscpu) sur ma machine x86_64 (c'est-à-dire d'une architecture pour une autre, soit de la compilation croisée), j'ai installé distccd-alarm sur la machine qui « aidera » le RPi à compiler, installation qui permet d'automatiser rapidement le déploiement. Il suffit de 

Cela installe trois paquets, distccd-alarm-armv{5,6h,7h}, pour plusieurs types d'architecture ARM. Celle qui m'intéresse pour le Raspberry Pi 2 est l'ARMv7.

Plusieurs choses à savoir pour déployer cela, donc 

Finalement, il ne reste plus qu'à compiler ses paquets sur le Raspberry Pi. Si le code est en C, C++, Objective C ou Objective C++, il sera compilé par les autres machines, plus puissantes, qui sont déclarées disponibles sur le réseau local.

Documentation concernant la compilation croisée :

En test : configuration Avahi

Plutôt que de déclarer des adresses IP fixes, j'aimerais plutôt utiliser les possibilités d'Avahi. Si mon routeur déconne (il déconne souvent) ou si je change d'environnement, je n'ai pas envie de changer chaque adresse IP dans ma configuration, donc de me rappeler de chaque endroit où j'ai modifié cela. Sur le papier, utiliser Avahi avec distcc permet d'utiliser de façon souple les cœurs disponibles, qu'importe le nombre de machines sur le réseau, etc.

Pour ce faire, il faut activer le support d'Avahi par distcc :

La commande avahi-browse -r _distcc._tcp permet dès lors d'afficher les machines se déclarant sur le réseau local sous Avahi. Par exemple chez moi :

+   eth0 IPv4 distcc@karl                                   Distributed Compiler local
=   eth0 IPv4 distcc@karl                                   Distributed Compiler local
   hostname = [karl.local]
   address = [192.168.1.69]
   port = [3632]
   txt = ["cc_machine=arm-unknown-linux-gnueabihf" "cc_version=5.1.1" "gnuhost=x86_64-unknown-linux-gnu" "distcc=3.2rc1" "cpus=4" "txtvers=1"]

On voit donc que la machine « karl » annonce qu'elle a 4 cœurs de CPU a « prêter » pour compiler.

Je dois encore parfaire cette configuration chez moi. Si le serveur de compilation distribuée semble pourtant bien configuré, du côté de la machine maîtresse cela semble cafouiller, puisqu'elle n'arrive pas à déléguer la compilation aux autres machines sur le réseau.

Documentation sur la distribution de la compilation via Avahi :

Gravatar de PostBlue
Original post of PostBlue.Votez pour ce billet sur Planet Libre.

Okki : GNOME vient de fêter ses 18 ans

dimanche 16 août 2015 à 10:09

Joyeux 18ème anniversaire
Le projet fut fondé le vendredi 15 août 1997 par deux étudiants mexicains, Miguel de Icaza et Federico Mena Quintero, dont le but était de produire un environnement de bureau entièrement libre, élégant et simple à utiliser.

Vous pouvez relire l’annonce originelle de Miguel sur les listes de diffusion, et si vous souhaitez vous aussi lui souhaiter un joyeux anniversaire, il existe le hashtag #HappyBirthdayGNOME.

Malheureusement, n’ayant pas réussi à virtualiser convenablement une vieille Debian 3.0 dans le but d’effectuer une capture d’écran d’un vieux GNOME 1.4 pour l’inévitable moment nostalgie, nous devrons nous contenter d’un GNOME 2.14.3 fourni par une Debian 4.0. D’où l’intérêt de penser à importer des captures de temps à autre sur Wikimedia Commons ;)

Debian 4.0 avec GNOME 2.14.3

Que de chemin parcouru ;)

Joyeux anniversaire, GNOME ♥

Gravatar de Okki
Original post of Okki.Votez pour ce billet sur Planet Libre.