2013-10-04 2 views
2

Il s'agit de flux vidéo sur RTMP et mon but est d'extraire les images du flux à un intervalle donné, par ex. toutes les secondesComment extraire en continu des images vidéo du streaming RTMP en utilisant avconv/ffmpeg?

Actuellement j'exécuter une commande dans une boucle, qui prend un cadre et il exporte en base64 JPEG:

avconv -i <URL> -y -f image2 -ss 3 -vcodec mjpeg -vframes 1 -s sqcif /dev/stdout 2>/dev/null | base64 -w 0 

Mais chacun de ces processus est longue (prend quelques secondes - ce qui ajoute encore plus de retard sur la vidéo en streaming qui n'est pas en temps réel déjà). Je me demande s'il existe un moyen de faire avconv ou ffmpeg pour extraire les images à un intervalle (en secondes ou en frames) et soit enregistrer en tant que fichier ou dump sur stdout.

J'apprécierais vraiment votre aide!

+0

Souhaitez-vous que la sortie d'image extraite soit écrasée en permanence ou voulez-vous des sorties d'image séquentielles numérotées? – LordNeckbeard

+0

@LordNeckbeard Je m'attends à ce qu'il soit stringifié en base64 PNG en ligne et immédiatement envoyé à un autre serveur. –

Répondre

2

Avez-vous essayé cela?

ffmpeg -i <URL> -r 1 out%03d.jpg 
+0

Je crois que c'est une réponse adéquate. L'exemple produira 1 image par seconde sous la forme de fichiers image séquentiellement numériques. – LordNeckbeard