2015-04-23 2 views
1

Je suis très nouveau avec ffmpeg. Considérons le cas suivant:FFMPEG Redistribution en ligne dans le serveur IIS Streaming Onvif IP Camera

J'ai plusieurs caméras IP onvif connectées au réseau avec un serveur IIS à l'intérieur. Je voudrais permettre au client de diffuser en streaming à n'importe quelle caméra ip à l'intérieur du réseau, mais il doit passer par le serveur IIS. Donc, fondamentalement, chaque caméra IP sera transmise au serveur IIS en flux unique et le serveur IIS sera redistribué à de nombreux clients qui le demandent. Ma question est de savoir comment configurer iis serveur pour fonctionner avec ce scénario? Et un exemple de ligne de commande ffmpeg à lire à partir de la caméra IP rtsp et envoyez-le le serveur iis qui le redistribuera au client.

Répondre

1

Vous pouvez utiliser la diffusion en direct HTTP pour ce scénario, HLS ou DASH. Le streaming HTTP ajoute de la latence, vous devez donc faire un peu de recherche sur la façon de modifier les paramètres de codage pour une faible latence.

L'idée de base est que vous devez segmenter le flux entrant et rendre ces segments et playlist/manifeste disponibles via votre infrastructure de serveur Web existante.

Exemple pour FFmpeg et HLS:

ffmpeg -i rtsp://input_stream.sdp -c:v libx264 -r 25 -g 25 -c:a libfdk_aac -hls_time 1 -hls_list_size 4 -hls_wrap 8 /path/to/webroot/live/playlist.m3u8 

Sur le client, vous utiliserez ensuite l'URL http://domain.com/live/playlist.m3u8. HLS n'est pas pris en charge nativement sur tous les appareils, alors obtenez un lecteur Web comme JWplayer ou clappr. Le client a besoin de 3 segments pour démarrer la lecture.

FFmpeg HLS

Pour DASH l'idée est similaire, mais vous devez également utiliser MP4Box.

+0

Merci. J'essaierais ça. Quoi qu'il en soit pour l'IIS, tout réglage devrait être fait? Le client peut-il simplement utiliser html5 pour lire le streaming en direct? –

+0

Comme je l'ai dit la réponse, HLS ne fonctionne pas nativement sur tous les appareils. Les joueurs liés offrent Flash fallback sur le bureau pour par exemple. L'un est payé, l'autre est gratuit. En ce qui concerne IIS, si vous utilisez des lecteurs basés sur le cloud, vous devez ajouter un fichier 'crossdomain.xml' et configurer les en-têtes' CORS' pour les demandes d'origines croisées/d'origines croisées. – aergistal

+0

Quoi qu'il en soit, qu'est-ce que l'option "-g"? J'ai aussi essayé mais j'ai eu une erreur: encodeur inconnu 'libfdk_aac'. Je télécharge les versions ffmpeg à partir de http://ffmpeg.zeranoe.com/builds/ Il dit "Dernière version de Zeranoe FFmpeg Build: git-cbe2700 (2015-04-22)". Donc je pense que c'est la nouvelle version. –