Se você olhar para esta página eles mostram essa técnica de usar o ffmpeg para fazer o fatiamento e, em seguida, tê-lo encaminhar para o ffserver:
$ ffmpeg \
-f v4l2 -s 320x240 -r 25 -i /dev/video0 \
-f alsa -ac 1 -i hw:0 \
http://localhost:8090/feed1.ffm
O comando acima está fazendo o seguinte:
- A primeira parte
-f v4l2 -s 320x240 -r 25 -i /dev/video0
representa a primeira entrada paraffmpeg
e captura nosso vídeo da webcam. Para mais informações, você pode ler mais sobre como capturar uma entrada da webcam. - A segunda parte
-f alsa -ac 1 -i hw:0
representa a segunda entrada paraffmpeg
e captura nosso áudio, dependendo da configuração de áudio do nosso sistema. Para mais informações, você pode ler mais sobre Capturando áudio com FFmpeg e ALSA. - A última, mas não a menos importante, parte
http://localhost:8090/feed1.ffm
representa o URL do feed, que informa ao ffmpeg para se conectar ao ffserver e enviar os fluxos de áudio + vídeo para transmissão. Neste exemplo, usamos o nome do hostlocalhost
, o que significa que tudo está em execução no nosso computador, mas se você precisar alimentar o ffserver on-line, precisará alterar olocalhost
para o nome do host real ou endereço IP de seu computador ffserver. Verifique também se o nome do seu feed termina com.ffm
e, se não for o caso, adicione-f ffm
antes do URL do feed para especificar manualmente o formato de saída (porqueffmpeg
não conseguirá descobrir automaticamente mais, como este-f ffm http://localhost:8090/blah.bleh
.
Assim que você digitar o comando acima, você verá o ffmpeg exibindo algumas estatísticas sobre seus fluxos de entrada e contando os quadros de saída, o que é um bom sinal de que tudo funciona (até agora).