J'ai mis ce jusqu'à récemment, mais c'est une sorte de douleur. Voici ce que j'ai eu à faire:
Tout d'abord, construire ffmpeg à partir de la source afin d'inclure les libvpx pilotes (même si vous utilisez une version qui a, vous avez besoin de les plus récents (de ce mois) pour les flux webm, car ils ont juste fait ajouter la fonctionnalité d'inclure global des en-têtes). Je l'ai fait sur un serveur Ubuntu et de bureau, et ce guide m'a montré comment - instructions pour les autres Systèmes d'exploitation peuvent être trouvés ici.
Une fois que vous avez obtenu la bonne version de ffmpeg/ffserver vous pouvez les configurer pour la diffusion, dans mon cas, cela a été fait comme suit.
Sur le périphérique de capture vidéo:
ffmpeg -f video4linux2 -standard ntsc -i /dev/video0 http://<server_ip>:8090/0.ffm
- L'option "-f video4linux2 -standard ntsc -i /dev/video0" partie de qui peut changer en fonction de votre source d'entrée (le mien est pour une carte de capture vidéo).
Pertinentes ffserver.conf extrait:
Port 8090
#BindAddress <server_ip>
MaxHTTPConnections 2000
MAXClients 100
MaxBandwidth 1000000
CustomLog /var/log/ffserver
NoDaemon
<Feed 0.ffm>
File /tmp/0.ffm
FileMaxSize 5M
ACL allow <feeder_ip>
</Feed>
<Feed 0_webm.ffm>
File /tmp/0_webm.ffm
FileMaxSize 5M
ACL allow localhost
</Feed>
<Stream 0.mpg>
Feed 0.ffm
Format mpeg1video
NoAudio
VideoFrameRate 25
VideoBitRate 256
VideoSize cif
VideoBufferSize 40
VideoGopSize 12
</Stream>
<Stream 0.webm>
Feed 0_webm.ffm
Format webm
NoAudio
VideoCodec libvpx
VideoSize 320x240
VideoFrameRate 24
AVOptionVideo flags +global_header
AVOptionVideo cpu-used 0
AVOptionVideo qmin 1
AVOptionVideo qmax 31
AVOptionVideo quality good
PreRoll 0
StartSendOnKey
VideoBitRate 500K
</Stream>
<Stream index.html>
Format status
ACL allow <client_low_ip> <client_high_ip>
</Stream>
- Remarque ce paramètre est configuré pour un serveur à feeder_ip pour exécuter ladite ffmpeg commande, et pour le serveur à server_ip donc serveur client_low_ip par client_high_ip lors de la manipulation du mpeg webm conversation sur server_ip (suite ci-dessous).
Cette ffmpeg commande est exécutée sur la machine précédemment dénommé server_ip (il gère le réel mpeg --> webm conversion et l'injecte dans la ffserver sur un autre aliment):
ffmpeg -i http://<server_ip>:8090/0.mpg -vcodec libvpx http://localhost:8090/0_webm.ffm
Une fois que ceux-ci ont tous été mis en place (d'abord le ffserver, puis le feeder_ip ffmpeg processus, puis ensuite le server_ip ffmpeg processus de), vous devez être en mesure d'accéder à la diffusion en direct de http://:8090/0.webm et de vérifier le statut à http://:8090/
Espérons que cette aide.