PROJET AUTOBLOG


Le blog de Mitsu

Archivé

Site original : Le blog de Mitsu

⇐ retour index

Mon Foxkeh en SVG

dimanche 27 mai 2012 à 15:36

Les plus observateurs d’entre vous l’ont peut-être remarqué: j’ai retravaillé mon avatar en SVG.

Il s’agit d’une œuvre composite:

Ce que j’ai crée c’est domaine public, j’en ai rien à foutre :) Cliquez sur les images pour afficher le SVG:

mimi

-> les navigateurs web et autres visionneuses d’images peuvent ne pas afficher correctement le halo rouge autour de la queue: pas réussi à trouver pourquoi (c’est valide W3C), peut être un artefact de l’Adobe Illustrator qui a servi à créer le Foxkeh :/ En tout cas Inkscape l’ouvre correctement et vous pourrez le retravailler sans problème avec lui.

flattr this!

Tout Fansub Streaming en 1 fichier !

dimanche 27 mai 2012 à 15:31

NB: il y aura un ultime export au moment de la fermeture, pour inclure tous les derniers articles et commentaires !

WordPress dispose d’une fonction d’export, ce qui permet de mettre en 1 seul fichier XML tous les articles. J’ai modifié le fichier:

  1. pas d’adresses email des commentateurs
  2. pas d’IP des commentateurs

Remplacement par expression régulière avec Scite:

<wp:comment_author_email>.*</wp:comment_author_email>

<wp:comment_author_IP>.*</wp:comment_author_IP>

<wp:author_email>.*</wp:author_email>

Télécharger (web)

Télécharger (Freenet)

Sommes de contrôle du fichier compressé:

jacksum -a all -F "#ALGONAME{i} = #CHECKSUM{i}"

adler32 = b95288dd

cksum = e4ee0086

crc16 = 4e7a

crc24 = d93341

crc32 = dccbb5ed

crc32_bzip2 = 4ab51c2e

crc32_mpeg2 = b54ae3d1

crc64 = 7fb18147580c48a1

crc8 = ef

ed2k = 0d5976b965699fd36fe67e2e56673ef1

elf = 009af020

fcs16 = 4b25

gost = e7e1589a07152724eaa7edb754265045931991aed15741bb4a6dce4901c73990

has160 = b835a729735cf5b119781b9375768a863e727501

haval_128_3 = 46b2008e7823c49778c877c9d212b54f

haval_128_4 = 0d5390dcd8d5be2d15a321883605b2fd

haval_128_5 = 1567a99a11cbddd66f488294209fb78a

haval_160_3 = 560e213c35777e0645d49cdbecfba3f3e1b48189

haval_160_4 = fca388fee316f371caebf6a93e19e34a9160274f

haval_160_5 = 9f5c507d4bb6ba58c7767aca0882fe701d13257f

haval_192_3 = 29af148d4e924f801f6b6ec6bae555794bd85d198d4431d1

haval_192_4 = 129305a69224d51bf8a6bbdc3883fc0e48730e65b9ef0e1c

haval_192_5 = b5587170531ea681bc686353086ae948dd804a2098b10b6f

haval_224_3 = 4061655c49494821869a32bd5d6021a2be17dba4b8a95b60d75852c2

haval_224_4 = 9ac5b2f15f9c6e4239424fee9231ebbbe1ea270d0e976c62c09cb6bb

haval_224_5 = 6003e4d0cb507af9ecaab8a4455fcac4c5036b9fd768c8120e68f587

haval_256_3 = 4723331c1391a8dcbabcfbed76a8fcd50de859a627af7879ca0880ba2ef8ad09

haval_256_4 = f61435183ef9e15031b276e3c68cf13e5fab577c2c78a965146db23bdee0d07f

haval_256_5 = 0286bd52b1493ac8b8d3cc470ac15a605a60a800ead318d75202d12bf4e36f55

md2 = 8ed40ce344038cde20e7dc36ee565c70

md4 = 0d5976b965699fd36fe67e2e56673ef1

md5 = 887e0fe76504b9f9335be7a6c6eba029

ripemd128 = 772565d0c5262ac137dfa9a9dc1cee59

ripemd160 = 7cb732555b75edd42ca5b9af995ff6eede9505e4

ripemd256 = 4f2de2ad6ffd495f7468084cb33cc9a9e74c32982846cd64dc9a839bd6a7f7a6

ripemd320 = a003fe6f912cace147c47aed5816140c3755d69ec43dab1694977e1019036cc41e645a0644dbef21

sha0 = f79c2978d6a26d85ade900fda5f7f7a33acb8337

sha1 = 8fec0b8881ee9827f5c03d009a51d28add1281b2

sha224 = 0385ca29e074fb613763bdde42bdf814aeb4fa7cbc6857a24135a576

sha256 = 011badec36e1575c647123a892a31f843195c1bae6336c3f7d92bddff4c247c7

sha384 = e23818f567b229aede57dd0dae9caa1cd55fc7c499bedbf0e1d804ead24e98c0a4fd1b1b44f29ce5dc8f81b14e1361fb

sha512 = b711e8c0a06ab159f4532b4d5a80d5bc941f7a02fb1f9adbb61d33eb9536e9f1746b306788e0c730cacd77c7ce9eea588aa631b20f8206818db748ced2f9477b

sum16 = f075

sum24 = 28f075

sum32 = 0a28f075

sum8 = 75

sumbsd = 8067

sumsysv = fa9d

tiger = 7483c06e2259426a0015bfc26a8015cf3c853b9e7700c987

tiger128 = 7483c06e2259426a0015bfc26a8015cf

tiger160 = 7483c06e2259426a0015bfc26a8015cf3c853b9e

tiger2 = 6e8f8bbcf155f1c2e7fb81e032d464c7fdb60b8916502df1

tree:tiger = 69dcdb28811b784bef3b1f8c0a438f83e14156da9648a9a5

tree:tiger2 = c6022ff1dd2bb3fbe376b7c052ebb6d7b55da916eb44182b

whirlpool0 = a5311ec2996f4ec7bd73df5be0ab6cb17a24d68f32019c3a400f1443228b4082c06aeb55a839a94c0d8f0a205df0e0e95aab36d51a6b82b943d953a4a820e446

whirlpool1 = cc19908870639a7484269347c33a2fe16cd00b9a975fd0c6b40cd3956a2fd27f3aa908892ee90c194446ef2ea824c59e9b53f0d9d7263245f1b0a0029f834c6e

whirlpool2 = 0c3e43b2185df316716b78ace8243143bb04d35c4245aa4ee2a01d1eac09f4b81039d7a836ebd0024311f2d824613df3b1daccf1888927476d1982658856566c

xor8 = 6b

Importez ce fichier dans votre WordPress, et hop vous avez un frère jumeau de Fansub Streaming.

Note: ne le faites pas récupérer les fichiers joints. Il pourra pas.

flattr this!

BitTorrent & liens magnet

dimanche 27 mai 2012 à 15:05

BitTorrent: le protocole peer to peer qui détrôna eDonkey

Peu, bien peu de distributions GNU/Linux ne sont pas disponibles via le protocole BitTorrent: latence faible, hachage fort des données, moindre proportion d’utilisateurs leecheurs, pas de file d’attente, gestion de sources intelligente, … le protocole BitTorrent reste à ce jour un ténor du club des protocoles P2P. Pour bien comprendre la suite, on va « décortiquer » ce qui permet un échange avec ce protocole: le « fichier graine », plus connu sous l’appellation de « fichier torrent ». Grâce au logiciel « BEncode editor« .

BEncode, c’est le format dans lequel sont encodés les informations d’un torrent. Ce format lui-même n’a rien de bien intéressant, et il est quelque peu dommage qu’on ne puisse pas l’ouvrir avec un éditeur de texte standard comme si c’était un modèle XML (mais il existe bien des APIs en différents langages). Bref.

bencode

Anglophobes, restez là :)

Forts de ces informations, les clients BitTorrent savent quoi télécharger, et d’où trouver des sources.

Tout ça c’est bien, mais si le tracker est indisponible, piraté, saisi, .. bref, injoignable ? Pas de panique, tous les clients BitTorrent actuels supportent un mécanisme décentralisé: la DHT.

Decentralize yourself: DHT

DHT: Distributed Hash Table. Pour faire simple: le rôle du tracker est assuré.. par les clients BitTorrent eux-même. Ça tombe bien, à tout moment il y a des … quantités inconnues mais énormes de clients BitTorrent qui s’échangent des données, peu de risque d’être seul avec son torrent et un tracker mort.

Au sein de la DHT, les clients conservent des références ou font transiter les demandes, pour assurer des découvertes rapides pour initier les échanges. Le principe:

Bien souvent, les clients BitTorrent essayent d’avoir 200-300 « voisins » dans la DHT, c’est à dire des nœuds qui ont des références ou peuvent faire transiter les demandes vers ceux qui en ont (small world network).

Pour identifier un torrent de façon unique, on utilise l’infohash. Accrochez-vous: il s’agit du hash des « info » d’un torrent. Si les infos du torrent ne correspondent pas au hash -> poubelle. Ce mécanisme rend BitTorrent beaucoup beaucoup moins sensible au spam de pièces corrompues (comme avec eDonkey) et fait gagner en confidentialité (un même fichier n’ayant pratiquement jamais le même infohash, ce dernier étant plus ou moins aléatoire selon le poids des pièces, leur nombre,..).

Concentrons-nous sur l’infohash: quand je donne comme exemple « 7cdd1be8af8842f5372172f634e0e333b95bb41b », il s’agit de l’infohash SHA-1 (vous voyez bien: caractères 0-9 et a-f). µTorrent et quelques autres clients rajoutent une couche, un encodage Base32 (dans mon exemple, ça donne PTORX2FPRBBPKNZBOL3DJYHDGO4VXNA3). Si votre infohash est en majuscules et contient toutes les lettres de l’alphabet, alors c’est un Base32(SHA-1). Dans les faits, ça ne pose aucun problème aux clients BitTorrent.

Distribuer des fichiers torrent ? Has been.

Il y a peu, le fameux moteur de recherche de torrents The Pirate Bay a enlevé les fichiers torrent pour les torrents qui ont plus de 10 sources. Pourquoi attendre cette limite ? Parce qu’en dessous, on met un certain temps jusqu’à pouvoir trouver des sources dans la DHT (mais ça marche quand même). Au lieu de distribuer des fichiers torrent, The Pirate Bay met à disposition un lien magnet.

Ah oui: ce mécanisme reposant entièrement sur la DHT, les torrents privés n’ont aucun intérêt (marchera pas, aucune source s’annonçant dans la DHT, donc aucune source disponible pour transmettre les infos).

Lien magnet: du texte identifiant un contenu

En reprenant mon exemple, un lien magnet minimaliste aurait cette forme:

Et c’est bien sous cette forme que je les fournis pour les séries. En gros, on indique juste l’infohash au client, charge à lui ensuite de récupérer les infos dans la DHT. Pour le détail des paramètres magnet, Wikipedia vous aidera.

Tel quel, le client doit récupérer le nom du torrent, son poids, le nombre de pièces et leur poids uniquement depuis la DHT. Encore une fois, on ne peut pas tricher: de « méchants » clients ne peuvent pas changer le nom ou le poids, car alors les infos feraient changer l’infohash et seraient rejetées. Mais on peut donner un coup de pouce au client (mais attention: si le client récupère le reste des infos et remarque que le tout ne correspond pas à l’infohash, ce qui a été récupéré valide de la DHT fait loi).

Assez évident non ? :) Le paramètre « dn » permet de définir un nom au torrent, et « tr » un/plusieurs tracker(s) (le client utilisera la DHT et le tracker). Bien sûr si le nom fourni depuis la DHT est différent, le client fera fi de ce que l’on lui a indiqué dans le lien magnet.

Créer un torrent

Dans qBittorrent, cliquer sur: Outils > Créateur de torrent. Simple. Dans l’onglet « Général » d’un torrent, vous trouverez son infohash (SHA-1). Pour les autres clients BitTorrent, c’est grosso modo la même procédure.

Créer un torrent sans interface graphique ? Et bien il existe « mktorrent » pour GNU/Linux. Lisez le manuel pour savoir comment utiliser.

Et sur un serveur web, possible ? Oui, possible. J’aime bien ce script PHP. Permet de lire les infos d’un torrent, le modifier, ou en créer, retourner un lien magnet.

Oui ok, mais je ne suis pas connecté H24 !

Pas grave :) Le réseau BitTorrent est si efficace qu’on est habitué à de très hauts débits de sa part, mais quand le torrent est peu populaire, il faut savoir patienter. Oui oui, il m’arrive de télécharger des trucs de quelques centaines de mega-octets depuis 2-3 pignoufs chinois utilisant un client BitTorrent local pas très partageur, Xunlei. Cependant, quand vous avez la chance d’avoir un japonais ou coréen « à l’autre bout du fil » -ou plutôt de la fibre optique notamment NTT, vous pestez contre le grincheux abonné Orange ou SFR qui culmine à 5 ko/s.

Ceci dit, si vous en avez le besoin, vous pouvez louer un serveur et en faire un « super-seedeur » pour distribuer à haute vitesse à ceux qui en ont besoin. Oui il existe des loueurs spéciaux « seedbox BitTorrent », mais ça laisse un nombre de fonctionnalités faible par rapport au prix moyen. OVH a récemment lancé son offre de serveurs virtuels Kimsufi: un peu moins de 6 € par mois, pour un trafic maximum de 1 To. Mettez-y une distrib’ Debian ou Ubuntu, « apt-get install qbittorrent-nox » et amusez-vous bien :) (qbittorrent-nox est une console web pour contrôler un qBittorrent sans interface graphique, je préfère à ruTorrent).

Conclusion

Peut-être que cet article fera rire dans quelques années si un réseau peer to peer aussi efficace supplante BitTorrent, en particulier sachant que BitTorrent n’est pas anonyme. Quoi qu’il en soit, le peer to peer c’est l’idéal pour distribuer de gros fichiers à plein de gens alors qu’il n’y a pas un Megaupload à faire fermer ;) Même fermer des trackers ne sert à rien, grâce à la DHT il faudrait déconnecter TOUS les ordinateurs du réseau un peu partout dans le monde pour affecter les transmissions d’infos. Bonne chance.

Et en plus ça permet aux fournisseurs d’accès internet d’équilibrer leurs volumes de données échangées, et donc de faciliter les accords de peering et réduire la facture du transit. À propos facture: mon prochain article traitera des frais de votre blog, comment les compenser :)

flattr this!

Piwik: suivi statistique

dimanche 27 mai 2012 à 15:01

Nouvel article dans la série « Créer son propre blog », je vous propose une courte présentation de Piwik, le suivi statistique en vigueur ici :)

Imaginez que, dans votre dos, un type regarde quels sites vous visitez, ce que vous y faites, et qui rapporte tout ça dans un calepin. Cela vous dérangerait, n’est-ce pas ? Vous n’appréciez guère quand un inconnu louche sur votre écran dans le cybercafé ? Rassurez-vous: non seulement il y a des gens qui regardent par dessus votre épaule, mais en plus ils sont nombreux, vous le savez et vous n’êtes pas fâché contre eux. Le type qui a le don d’ubiquité suffisant pour mater l’écran de la majorité des gens du cybercafé en même temps, il s’appelle Google. Le plus fort, c’est qu’il ne s’est pas imposé sur le web: les webmasters ont tout simplement apprécié le truc et ajouté d’eux-même l’outil de traçage, Google Analytics, à leur site. Résultat des courses: « suivi statistique des visiteurs » est devenu synonyme de « Google Analytics » dans l’esprit de beaucoup de gens.

Des Analytics sans Google Analytics

Heureusement pour nous, il n’est nul besoin d’offrir à Google le placement de leur javascript sur notre blog. Il existe en effet un outil servant à cela: Piwik.

piwik

Très complet et modulaire, agréable à utiliser, il fournit une excellente alternative aux outils statistiques propriétaires (oui, c’est un logiciel libre). Il est d’ailleurs assez simple à installer.

Conseil: dans « Paramètres > Vie privée », activez la suppression des anciens logs de visiteurs. Après plusieurs mois je suppose que seuls les graphiques vous intéressent, et plus tellement qui a fait quoi :) Ça soulagera la base de données.

Il est bien sûr possible de créer plusieurs comptes utilisateur avec des droits d’accès spécifiques, d’activer une fonction « opt-out » permettant aux visiteurs de désactiver le traçage chez eux, il y a un support de plugin puissant (et de nombreux plugins permettant de faire tout un tas de choses), gestion multisites avec objectifs en revenus publicitaires, …

Conseil: pour permettre aux navigateurs des visiteurs de charger le script en parallèle (et donc accélérer le chargement des pages), placez Piwik dans un sous-domaine spécifique (par exemple ici c’est: piwik.fansub-streaming.eu).

Piwik a en outre un développement actif, et peut être mis à jour d’un simple clic. Le tout est simple, clean et puissant, vous oublierez bien vite Google Analytics ;)

À bientôt pour le prochain article !

flattr this!

Encodage (créer des fichiers WebM)

dimanche 27 mai 2012 à 14:29

Asseyez-vous confortablement, réglez la hauteur de votre siège et éclairez suffisamment la pièce. Oh accessoirement, ouvrez la fenêtre si votre ordinateur se prend un peu trop pour un convecteur électrique :) Car aujourd’hui, nous allons voir comment encoder des fichiers vidéos au format WebM. Il y a fort à parier que vous n’avez jamais rencontré ce format de fichier pour des films partagés sur les réseaux P2P et les stockages de fichiers, et il y a bien une raison à cela: d’une part c’est un format crée il y a peu, et d’autre part son principal intérêt c’est le streaming vidéo en HTML 5, un cadre encore un peu expérimental.

Néanmoins: lorsqu’on veut proposer du streaming sans utiliser Flash ni aucun autre module propriétaire (type Silverlight, RealVideo, …), la norme HTML 5 est déjà incontournable. Pour plus d’informations sur les formats utilisés en HTML 5 et leur intégration, voir mon précédent article sur le sujet :)

Petits rappels avant de commencer: Un WebM est toujours de type WEBM-VP8-VORBIS.

Pour lire les fichiers WebM, il y a de plus en plus de logiciels qui sont capables de faire le décodage. J’imagine que les logiciels les plus utiles pour ce format sont votre navigateur web (Firefox, Opera, Chrome-Chromium,..) et VideoLan VLC :)

C’est pour créer des fichiers WebM qu’on entre dans le vif du sujet: il n’existe encore que peu d’encodeurs, ils peuvent être lents et de mauvaise qualité.

La meilleure solution à l’heure actuelle, c’est utiliser la librairie d’encodage officielle (libvpx) avec un très répandu et puissant encodeur: ffmpeg.

Firefogg

FFmpeg est un encodeur en ligne de commande -stop, ne vous enfuyez pas: il existe de très nombreuses interfaces pour régler les paramètres d’encodage de ffmpeg. Vous préférez ce qui est gratuit, mis à jour tout seul, léger, et même avec code source libre ? Bonne nouvelle: vous pouvez installer Firefogg dans votre navigateur Firefox :) Je recommande vivement à ceux qui ne sont pas experts en encodage vidéo.

Une fois le module installé, rendez-vous sur la page de création de vidéo.

Dans ce processus, Firefogg passe à ffmpeg les paramètres qui vont bien et rapporte à l’utilisateur l’avancement de l’encodage (pourcentage et temps restant). La vidéo est bel et bien encodée avec votre processeur, et le résultat reste bien sur votre ordinateur. Ce n’est pas un service d’encodage en ligne.

Astuce: allez dans votre profil Firefox (local settings\application data ou appdata\roaming selon votre version de Windows, ou simplement ~/.mozilla pour GNU/Linux et MacOS), dossier extensions/firefogg@firefogg.org/bin. Là dedans vous pouvez retrouver le fameux exécutable binaire de ffmpeg ;) Vous pouvez également voir la ligne de commande passée à ffmpeg dans le gestionnaire des tâches.

GNU/Linux: compiler ffmpeg

Puisque je suis d’un naturel paresseux, je me suis fait un script bash pour utiliser ce qu’il y a de plus récent pour mon Linux Mint Debian :) Les utilisateurs d’une distribution non dérivée de Debian/Ubuntu sauront adapter les commandes. Aussi: évitez d’utiliser l’option make -j 9 si vous ne possédez pas un processeur à 6 coeurs :mrgreen: -j 5 conviendra la plupart du temps. (c’est le nombre de tâches de compilation simultanées).

Ce script nettoie les compilations précédentes, met à jour les outils de développement, récupère et compile libmp3lame, clone les projets x264, libvpx et ffmpeg, récupère mkclean, et compile le tout. En 5 minutes c’est torché :)

#!/bin/bash

sudo apt-get update

sudo rm -r /usr/local/src/*

sudo apt-get remove ffmpeg x264 libx264-dev lame libmp3lame-dev libvpx

sudo apt-get install git yasm checkinstall build-essential libvorbis-dev libxvidcore-dev libfaac-dev libfaad2 libtheora-dev libdirac-dev libvdpau-dev libopenjpeg-dev libopencore-amrwb-dev libopencore-amrnb-dev libgsm1-dev libschroedinger-dev libspeex-dev libdc1394-22-dev libsdl1.2-dev libx11-dev

cd

wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz && tar -zxvf lame-3.98.4.tar.gz && rm lame-3.98.4.tar.gz

git clone git://git.videolan.org/x264.git

git clone http://git.chromium.org/webm/libvpx.git

git clone git://git.videolan.org/ffmpeg.git

# verifier version sur http://sourceforge.net/projects/matroska/files/mkclean/

wget http://sourceforge.net/projects/matroska/files/mkclean/mkclean-0.8.6.tar.bz2 && tar -jxvf mkclean-0.8.6.tar.bz2 && rm mkclean-0.8.6.tar.bz2

sudo mv ~/lame-3.98.4/ /usr/local/src/

sudo mkdir -p /usr/local/share/doc/lame/html /usr/local/share/man/man1 /usr/local/include

cd /usr/local/src/lame-3.98.4

./configure

make -j 9

sudo checkinstall –pkgversion « 1:3.98.4″ –backup=no –default

cd

sudo mv ~/x264/ /usr/local/src/

sudo mkdir -p /usr/local/lib/pkgconfig

cd /usr/local/src/x264

./configure –prefix=/usr –enable-shared

make -j 9

sudo checkinstall –pkgname=x264 –pkgversion « 20:0.svn`git rev-list HEAD | wc -l` » –backup=no –default

cd

cd ~/libvpx_src

mkdir « `date ‘+%d-%m-%Y’` »

cp ~/libvpx/ ~/libvpx_src/`date ‘+%d-%m-%Y’`

sudo mv ~/libvpx/ /usr/local/src/

cd /usr/local/src/libvpx

./configure

make -j 9

sudo checkinstall –backup=no –default

cd

sudo mv ~/ffmpeg/ /usr/local/src/

cd /usr/local/src/ffmpeg

./configure –enable-libmp3lame –enable-libxvid –enable-libvorbis –enable-gpl –enable-libfaac –enable-libtheora –enable-zlib –disable-shared –enable-libx264 –enable-libdirac –enable-nonfree –enable-version3 –enable-libschroedinger –enable-avfilter –enable-libspeex –enable-libopenjpeg –enable-libgsm –enable-postproc –enable-pthreads –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-ffplay –enable-pthreads –prefix=/usr/local –enable-x11grab –enable-runtime-cpudetect –enable-bzlib –enable-libdc1394 –enable-libvpx –enable-librtmp –enable-openal

sudo make clean

make -j 9

sudo checkinstall –pkgname=ffmpeg –pkgversion « 20:0.8″ –backup=no –default

cd

sudo mv ~/mkclean-0.8.6/ /usr/local/src/

cd /usr/local/src/mkclean-0.8.6

./configure

make -j 9 -C mkclean

sudo checkinstall –backup=no –default
Le ffmpeg obtenu est très gros du coup: il contient plein de librairies.

L’encodage avec ffmpeg

ffmpeg -i "video" "video.webm"

ffmpeg -i "video" -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmax 40 -threads 0 "video.webm"

#!/bin/bash

redimensionner() {

dimension= »$(ffmpeg -i « $1″ 2>&1 | grep Video: | sed ‘s/.*Video:.*, \([0-9]*x[0-9]*\).*/\1/’) »

local hauteur=${dimension#*x}

local largeur=${dimension%x*}

let « result=640*${hauteur}/${largeur} »

echo « -s 640x$result »;

}

for file in *; do

dim=`redimensionner « $file »`;

ffmpeg -i « $file » $dim -sws_flags lanczos -ac 2 -ar 48000 -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmax 40 -threads 0 « ${file%.???}.webm »

done

#!/bin/bash

for file in *; do

ffmpeg -i « $file » -vcodec libvpx -vb 800k -rc_lookahead 16 -keyint_min 0 -g 120 -skip_threshold 0 -level 116 -quality best -speed 0 -slices 4 -threads 6 -acodec libvorbis -ac 2 « ${file%.???}.webm »

mkclean –optimize –remux « ${file%.???}.webm » « ${file%.???}c.webm »

rm « ${file%.???}.webm »

mv « ${file%.???}c.webm » « ${file%.???}.webm »

done

#!/bin/bash

for file in *; do

ffmpeg -i « $file » -vcodec libvpx -vb 2000k -rc_lookahead 16 -keyint_min 0 -g 120 -skip_threshold 0 -level 116 -quality best -speed 0 -slices 4 -threads 6 -pass 1 -passlogfile pass1.fpf -an « ${file%.???}.webm »

ffmpeg -i « $file » -vcodec libvpx -vb 2000k -rc_lookahead 16 -keyint_min 0 -g 120 -skip_threshold 0 -level 116 -quality best -speed 0 -slices 4 -threads 6 -pass 2 -passlogfile pass1.fpf -acodec libvorbis -ac 2 -y « ${file%.???}.webm »

rm pass1.fpf-0.log

mkclean –optimize –remux « ${file%.???}.webm » « ${file%.???}c.webm »

rm « ${file%.???}.webm »

mv « ${file%.???}c.webm » « ${file%.???}.webm »

done
(les séries sont encodées avec le profil HD v2, mais avec -vb 800k)

#!/bin/bash

for file in *; do

ffmpeg -i « $file » -vcodec libvpx -qmin 10 -qmax 20 -rc_lookahead 25 -keyint_min 0 -g 360 -skip_threshold 0 -slices 2 -threads 6 -acodec libvorbis -y « ${file%.???}.webm »

mkclean –optimize –remux « ${file%.???}.webm » « ${file%.???}c.webm »

rm « ${file%.???}.webm »

mv « ${file%.???}c.webm » « ${file%.???}.webm »

done
Inspirez-vous des paramètres pour déterminer ce qui correspond le mieux à vos besoins :) Testez, testez, testez. Jouez avec la variable « -vb » , essayez avec -quality good, comparez les temps d’encodage,..

D’autres encodeurs

Il existe pas mal d’encodeurs ou d’interfaces pour encodeur, capables de faire des fichiers WebM (Miro, Arista, ..). Ou sinon il y a une autre méthode: utiliser un service d’encodage en ligne (encoding.com, zencoder,..) ou carrément un portail vidéo pour récupérer la vidéo ensuite (Youtube). Mais je préviens: niveau qualitatif, c’est pas top :)

Avant de mettre le fichier WebM en ligne, vérifiez s’il est joué correctement par les navigateurs web.

Voilà, à présent vous savez créer et intégrer des streams WebM :) Prochain article: la sauvegarde ;)

flattr this!