antisèche: dd

Quelques petites choses utiles avec dd(1)

Créer un fichier d’une taille donnée:

en vitesse (un fichier sans données, rempli de \0):

dd if=/dev/zero of=monFichier bs=1024 count=S # S taille en KiB

plus lentement (le fichier sera rempli de données aléatoires):

dd if=/dev/random of=monFichier bs=1024 count=S

Trafiquer le MBR d’un disque:

La petite chose à savoir, le MBR correspond aux 512 premiers octets du disque, répartis comme suit:

  • les 446 premiers sont pour le gestionnaire de boot ;
  • les 64 suivants correspondent à la table de partition ;
  • les 2 derniers sont la signature du disque.

Effacer le secteur d’amorçage (sans toucher à la table de partition):

dd if=/dev/zero of=/dev/sdX bs=446 count=1

Effacer juste la table de partitions (sans toucher au MBR):

dd if=/dev/zero of=/dev/sdX bs=1 seek=446 count=64

note: pas testé 😉

Efface la table de partition et le MBR:

dd if=/dev/zero of=/dev/sdX bs=512 count=1

Pour finir, si on veut écraser et pas juste effacer, on remplace /dev/zero par /dev/random.

streamer en RTMP avec ffmpeg

Il y a pas longtemps, j’ai découvert qu’on pouvait se servir de ffmpeg comme encodeur Flash, pour pousser en utilisant le protocole propriétaire d’Adobe (le RTMP). J’ai testé ça avec un serveur Wowza comme cible (c’est pratique dès fois de bosser dans une boîte qui fait du streaming).

Ça se passe donc comme ça:

ffmpeg -i $src <mes options> -f flv rtmp://mon_serveur_flash/mon_appli_flash/mon_flux
  • <mes options> : c’est détaillé  ;
  • -f flv : on prend un container Flash Video pour pousser du Flash (c’est plutôt logique :-)) ;
  • la destination: au lieu d’un fichier ou d’une spec de flux rtp (par exemple), on spécifie une URL en rtmp:// avec les infos qui sont normalement fournies par votre fournisseur (en général: un hostname, un nom d’«application» – c’est la partie du serveur Flash qui est dédiée à un client –), et un nom de flux que l’on choisit comme on veut (en respectant la règle habituelle: pas d’accents, pas d’espaces, pas de caractères bizarroïdes).

Si on a la bande passante pour, et que l’on veut pousser sur plusieurs serveur, on peut multiplier les <mes options> et les URLs de destinations:

ffmpeg -i $src <mes options> -f flv rtmp://serveur1/mon_appli/mon_flux <mes options> -f flv rtmp://serveur2/mon_appli/mon_flux [...]

On peut aussi pousser sur un ou plusieurs serveurs plusieurs versions du flux $src (pour avoir plusieurs débits quand on veut faire Apple HTTP Live Streaming ou du Adobe HTTP Dynamic Streaming). On peut s’aider de la cochonnerie que j’ai publiée sur commandelinefu pour un flux RTP 🙂