Archive for the ‘Linux’ Category.

mp3 streaming via Apache et mod_flv

Le streaming de mp3 peut être réalisé en utilisant une application dédiée comme Icecast. Cependant, l’installation d’une telle application peut s’avérer contraignante sur un serveur web exploitant Apache.

Alors pourquoi ne pas utiliser directement Apache comme serveur de streaming?

Cette option est viable à deux conditions:

  • se contenter d’un pseudo-streaming
    gestion du timeshifting, soit possibilité d’écouter la fin d’un mp3 sans en avoir téléchargé le conten, mais aucune gestion de la bande passante
  • utiliser des fichiers flv
    les mp3s devront être intégrés à un fichier flv (Adboe Flash Video Codec, ce qui peut allourdir le fichier audio d’environ 10%

Premièrement, il est nécessaire d’installer le module mod_flv pour Apache. La démarche d’installation est décrite dans un précédent article: Apache video streaming: flv et mp4 (H264) via modules open-source.

Une fois ce module fonctionnel, il est nécessaire d’installer les logiciels ffmpeg (encodage de vidéos) et yamdi (injection de metadata dans le fichiers flv). L’installation sous CentOS 5.2 avec Plesk se déroule selon les étapes suivantes :

  1. Configurer yum pour utiliser le repository DAG
  2. Exécuter la commande :
    yum install ffmpeg
  3. Télécharger les dernières sources de yamdi sur le site de yamdi (sourceforge) :
    wget http://......../yamdi-1.6.tar.gz
  4. Décompresser et compiler yamdi :
    tar xzf yamdi-1.6.tar.gz
    
    cd yamdi-1.6
    
    gcc yamdi.c -o yamdi -O2 -Wall

Tous les outils nécessaire sont désormais installés.

L’étape suivante consiste à intégrer le fichier audio mp3 d’origine à un fichier flv ne présentant qu’une image noire comme contenu vidéo. ffmpeg est utilisé pour l’encodage et l’intégration du fichier source, et yamdi pour la création de keyframes afin de permettre le pseudo-streaming sur le fichier de sortie au format flv.

Afin de se simplifier la vie, il est recommandé de créer un script shell réalisant ce travail, comme décrit dans la marche à suivre suivante :

  1. Créer le script shell :
    vi mp3toflv.sh
  2. Contenu du script (en téléchargement ici) :
    #!/bin/sh
    
    ffmpeg -loop_input -f image2 -i black_video.png -r 1 -vcodec flv -i $1 -acodec copy -qscale 2 -g 5 -cmp 3 -subcmp 3 -mbd 2 $2 -shortest
    
    yamdi -i $2 -o $2-tmp
    
    rm $2mv $2-tmp $2
  3. Placer l’image black_video.png (en téléchargement ici) dans le même dossier que le script mp3toflv.sh.
  4. Donner les droits d’exécution au script:
    chmod 755 mp3toflv.sh

L’appel à ce script se fait de la manière suivante:

./mp3toflv.sh /path/to/source.mp3 /path/to/output.flv

Une fois le fichier flv obtenu par cette méthode, il suffit de le lire avec un lecteur de mp3 en flash.
Par exemple, le lecteur JW Player qui peut être utilisé pour ne reproduire que du son.

Il est nécessaire de préciser dans la playlist xspf pour JW Player le mode de streaming par le biais d’une balise meta:

...
<track>
… <location>http://www.host.com/directory/file.flv</location> <meta rel=”provider”>http</meta> …
</track> …

Cette méthode peut être testée par le biais de la radio SupaLame, qui utilise ce modèle pour offrir le streaming de sessions audios d’une durée supérieure à 4h stockées en un seul fichier.

  • Share/Save/Bookmark

Installation carte Wireless Intel Pro 2915 (FC6)

L’installation d’une carte Wifi MiniPCI Intel Pro 2915ABG sous Fedora Core 6 est normalement automatisée… Mais si le message “Le périphérique ipw2200 n’étant pas présent, l’initialisation de eth1 sera retardée” apparaît, il est nécessaire de procéder à la ré-installation du firmware.

Source: Communauté francophone Fedora Core - Forum

Pour ré-installer le firmware, il est nécessaire d’utiliser le repository Livna:
rpm -ivh http://rpm.livna.org/livna-release-6.rpm

Ensuite, suivre la procédure ci-dessous. Dans le cas d’un échec, il suffit de continuer la procédure:
- Supprimer ipw2200-firmware avec yum:
yum remove ipw2200-firmware
- Supprimer la carte eth1 dans system-config-network:
Exécuter system-config-network
Puis sélectionner sous “Matériel” la carte “Intel Corporation PRO/Wireless 2915ABG” et cliquez sur “Supprimer”
- Exécuter:
rmmod ipw2200
- Réinstaller ipw2200-firmware avec yum:
yum install ipw2200-firmware
- Exécuter:
modprobe ipw2200-firmware
- Redémarrer la machine
- Re-configurer la carte sous system-config-network:
Exécuter system-config-network
Sous “Périphériques”, cliquer sur “Nouveau”.
Sélectionner “Connexion sans fil”, cliquer sur “Avancer”.
Sélectionner “Intel Corporation PRO/Wireless 2915…” et cliquer sur “Avancer”.
Sélectionner le mode “Géré”, et configuré les paramètres du réseau wifi. Cliquer sur “Avancer”.
Définir les paramètres IP, cliquer sur “Avancer”.
Cliquer sur “Appliquer”.
Une fois de retour sous “Périphériques”, sélectionner la nouvelle entrée (eth1) et cliquer sur “Activer”.
- Redémarrer le réseau (pas forcément nécessaire):
service network restart

  • Share/Save/Bookmark