Auteur Sujet: Linux : Faire une capture d'un flux vidéo en ligne de commande  (Lu 4557 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 175
    • Twitter LaFibre.info
Linux : Faire une capture d'un flux vidéo en ligne de commande

1/ On s'abonne à un flux multicast en tache de fond :
/usr/bin/cvlc rtp://@233.136.0.116 2> /dev/null &

2/ On fait la capture avec TCPdump
/usr/bin/sudo /usr/sbin/tcpdump -i eth0 -n -s 0 -w /tmp/capture.pcap &

3/ On résilie l'abonnement au flux multicast :
/usr/bin/killall -s INT vlc


Dans un script cela donne cela :

$1 est la durée de la capture
/usr/bin/cvlc rtp://@233.136.0.116 2> /dev/null &
# Capture avec TCPdump
/usr/bin/sudo /usr/sbin/tcpdump -i eth0 -n -s 0 -w /tmp/capture1.pcap &
/bin/sleep $1
/usr/bin/sudo /usr/bin/killall -s INT tcpdump
# désabonnement du flux
/usr/bin/killall -s INT vlc

corrector

  • Invité
Linux : Faire une capture d'un flux vidéo en ligne de commande
« Réponse #1 le: 12 juillet 2011 à 14:05:13 »
3/ On résilie l'abonnement au flux multicast :
/usr/bin/killall -s INT vlc
Mouais... à la trappe tous les autres VLC qui sont lancés, même pour lire un CD!

Et si le processus ne s'appelle plus "vlc", ça marche pas.

1/ On lance cvlc en tâche de fond et on n'oublie pas de noter le PID :

/usr/bin/cvlc rtp://@233.136.0.116 2> /dev/null &
cvlc_pid=$!

2/ (...)
3/ On signale le cvlc qui est en tâche de fond :

/bin/kill -INT ${cvlc_pid}

Dans un script cela donne cela :

$1 est la durée de la capture
/usr/bin/cvlc rtp://@233.136.0.116 2> /dev/null &
cvlc_pid=$!
# Capture avec TCPdump
/usr/bin/sudo /usr/sbin/tcpdump -i eth0 -n -s 0 -w /tmp/capture1.pcap &
tcpdump_pid=$!
/bin/sleep $1
/usr/bin/sudo /bin/kill -INT ${tcpdump_pid}
# désabonnement du flux
/bin/kill -INT ${cvlc_pid}