3 votes

Peut-on diffuser un fichier mp3 avec nginx ?

J'ai une application Ruby On Rails fonctionnant sur Nginx qui sert des MP3 en utilisant JW player. Je dois être en mesure de définir l'heure de début et la durée des éléments de la liste de lecture. D'après ce que je peux dire, pour faire cela, je dois diffuser les fichiers MP3. Comment puis-je configurer Nginx pour faire cela ?

1voto

Mike Points 11

Nginx dispose d'un support intégré pour la diffusion de fichiers FLV par le biais de la fonction HttpFlvStreamModule . Vous devez spécifier le module lorsque vous compilez / recompilez Nginx.

# ./configure --with-http_flv_module ...SOME-OTHER-OPTS...

Vous pouvez ensuite configurer votre nginx.conf pour diffuser des fichiers FLV comme suit :

...
http {
    ...
    server {
        ...
        location ~ \.flv$ {
            flv;
        }
        ...
    }
    ...
}

En quoi cela peut-il aider puisque la question initiale portait sur le streaming de fichiers MP3 ? Eh bien, vous pouvez utiliser FFMPEG pour convertir les MP3 en fichiers FLV comme ceci :

ffmpeg -y -i /home/song.mp3 -f flv -acodec mp3 -ab 64 -ac 1 /home/song.flv

0voto

d-_-b Points 1094

AFAIK, Nginx est un serveur HTTP. Pour diffuser de l'audio, vous aurez besoin d'un logiciel comme Icecast : http://www.icecast.org/

Les différences techniques entre le streaming et le téléchargement se situent principalement au niveau du client et du serveur. Pour l'utilisateur final, le streaming signifie qu'il ne pourra probablement pas sauvegarder les médias sur son ordinateur. Avec le téléchargement, l'utilisateur final ne pourra peut-être pas commencer à le regarder tout de suite. Bien qu'en pratique, la plupart des données peuvent être visionnées dès que les premiers bits arrivent sur le client.

Ceci étant dit, êtes-vous sûr d'avoir besoin d'un serveur de streaming pour utiliser JWplayer ? Ne pouvez-vous pas simplement le faire pointer vers une URL et laisser JW aller la chercher ? Dans ce cas, Nginx peut très bien servir l'audio.

En fait, je suis presque sûr de l'avoir déjà fait avec Apache. La vidéo a commencé à être lue après un peu de mise en mémoire tampon - comme c'est le cas avec Youtube.

0voto

Alex InTechno Points 101

Vous pouvez également réaliser cela avec le module mp4

 location /mp3/ {
    root data;
    mp4;
    mp4_buffer_size      1m;
    mp4_max_buffer_size  5m;
 }

Il n'est pas nécessaire de convertir en flv pour lire les mp3.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X