Você pode transmitir um arquivo mp3 com o nginx?

2

Eu tenho um aplicativo Ruby On Rails rodando no Nginx que serve MP3s usando o JW Player. Preciso definir o horário de início e a duração dos itens da playlist. Pelo que posso dizer para fazer isso eu preciso estar transmitindo os arquivos MP3. Como posso configurar o Nginx para fazer isso?

    
por bwizzy 09.02.2011 / 02:52

2 respostas

1

O Nginx criou suporte para a transmissão de arquivos FLV por meio do HttpFlvStreamModule . Você deve especificar o módulo quando compilar / recompilar o Nginx.

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

Você pode então configurar seu nginx.conf para transmitir arquivos FLV assim:

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

Agora, como isso ajuda alguma coisa desde que a pergunta original era sobre streaming de arquivos MP3? Bem, você pode usar o FFMPEG para converter os MP3s para arquivos FLV assim:

ffmpeg -y -i /home/song.mp3 -f flv -acodec mp3 -ab 64 -ac 1 /home/song.flv
    
por 09.02.2011 / 13:14
0

AFAIK, o Nginx é um servidor HTTP. Para transmitir áudio, você precisará de sites como o Icecast: link

As diferenças técnicas entre streaming e download são principalmente com o cliente e o servidor. Para o usuário final, streaming significa que eles provavelmente não conseguirão salvar mídia em sua máquina. Faça o download e o usuário final pode não conseguir começar a assisti-lo imediatamente. Embora, na prática, a maioria dos dados possa ser visualizada assim que os primeiros bits chegam ao cliente.

Dito isso, você tem certeza de que precisa de um servidor de streaming para usar o JWplayer? Você não pode simplesmente apontar para um URL e deixar o JW buscar isso? Nesse caso, o Nginx serviria bem o áudio.

Na verdade, tenho certeza que já fiz isso antes com o Apache. O vídeo começou a tocar depois de um pouco de buffer - como acontece com o Youtube.

    
por 09.02.2011 / 05:21