streaming flv usando ffserver

3

Eu estou rodando Debian para meu servidor doméstico, que é uma máquina que vive sob a televisão na sala de estar e armazena fotos da família, vídeos, músicas, etc. Estou usando todos os serviços usuais para atender a essas necessidades. até quem merece e tudo funciona. Até aí tudo bem.

Não consigo que meus filhos usem coisas como ftp ou até e-mail, para eles "o internetz" significa um navegador da web. Firefox geralmente. Então eu estou usando o apache2 para servir páginas cgi geradas a partir do código compilado por mim escrito em C. E que tudo funcione.

Portanto, quero transmitir músicas, filmes, gravações de televisão, etc. para navegadores da Web e, apesar do surgimento da tag de mídia em html5, o flash ainda é realmente a única solução prática que realmente funciona.

Consegui um programa cgi para converter mp3's, avi's e afins para flash como arquivos flv usando ffmpeg, sob demanda do usuário, armazenado em um arquivo temporário sob DOCUMENT_ROOT e o navegador irá reproduzi-los, e que trabalho. por exemplo:

ffmpeg -i "/home/media/Audio/Music Videos/Kylie Minogue - Come Into My World.mpg" -sameq -ab 32k -ar 22050 -ac 2 -s 320x240 -f flv -y ../tmp/file9ltYxj.flv

Ok, então não há como explicar o gosto - veja, eu sou heavy metal, mas esse vídeo é um trabalho genial! :-) Mas não é ideal, por um lado, ocupa espaço criando todos esses arquivos tmp e, para outra chamada do ffmpeg, executar a conversão faz com que o carregamento da página seja interrompido enquanto a tarefa é concluída. O que é bom para um vídeo musical de cinco minutos, mas duvido que o Firefox espere um filme de duas horas para converter usando esse método.

Então eu quero transmitir eles usando o ffstream. Estou executando esta linha (como root):

ffserver -d -f /etc/ffserver.conf &

e o cgi executa isso:

ffmpeg -i "/home/media/Audio/Music Videos/Kylie Minogue - Come Into My World.mpg" -sameq -ab 32k -ar 22050 -ac 2 -s 320x240 -f flv -y http://localhost:8090/feed1.flv

e é aqui que estou com problemas. A página é carregada, o flash é incorporado, mas não mostra nada. relatórios ffserver:

Mon Apr 15 09:29:38 2013 New connection: GET /feed1.flv
Mon Apr 15 09:29:38 2013 192.168.0.33 - - [GET] "/feed1.flv HTTP/1.1" 404 149

Estou obtendo 404's, mas antes de obter 200, não sei por que isso mudou. Mas se 404 ou 200, a página é a mesma; Carregado, mas sem fluxo de vídeo.

Eu realmente poderia fazer com alguém para me fazer mais perguntas (não sei o que adicionar) e esperançosamente me levantar e correr com isso, porque eu não tenho muito cabelo e minha esposa quer que eu pinte a sala de jantar.

Alguém pode, por favor, avisar onde eu posso estar errado?

    
por Lee 15.04.2013 / 10:58

1 resposta

2

No seu caso, o FFmpeg deve fornecer o arquivo de saída como um arquivo de fluxo, caso contrário, seu arquivo ainda não está pronto para streaming. Isso geralmente é feito usando o formato FFM:

ffmpeg -i "/home/media/Audio/Music Videos/Kylie Minogue - Come Into My World.mpg" -ab 32k -ar 22050 -ac 2 -s 320x240 -y http://localhost:8090/feed1.ffm

Em seguida, no seu arquivo server.conf, você pode transmitir o feed FFM para um FLV:

<Feed feed1.ffm>
    File /feed1.ffm
</Feed>

<Stream feed1.flv>
    Feed feed1.ffm
    ...
</Stream>
    
por 15.04.2013 / 11:56