2010-11-23 45 views
2

J'ai essayé des outils comme videosnarf qui prend un fichier pcap en entrée et crée un fichier .h264 brut, qui pourrait être encodé plus tard avec ffmpeg, et qui peut enfin être joué avec le lecteur vlc. Mais videosnarf ne peut gérer que les données h264.Comment extraire les données H263/H264 d'un fichier pcap.

Je ne suis pas en mesure de trouver un outil similaire qui peut vider les données h263 d'un fichier pcap. J'ai essayé de décoder le flux H263 de wireshark mais je n'ai pas eu de chance jusqu'à présent.

Je peux programmer en perl/python mais je ne sais pas exactement les étapes à suivre pour extraire les données brutes h263 d'un fichier pcap car je n'ai pas joué avec les fichiers de capture pcap auparavant.

+0

Cela semble vraiment bizarre. Pourquoi en aurais-tu besoin? Les chances sont parce que c'est tellement niche qu'il n'existe pas. Mais la source est ouverte! Si vous en avez besoin, vous devriez envisager de l'ajouter ou de faire appel à quelqu'un d'autre. – OmnipotentEntity

+0

Eh bien, la seule raison pour laquelle j'essaie de récupérer les données vidéo de pcap est de connaître la qualité de la transmission vidéo à la fin de la réception par rapport à la vidéo de référence utilisée pendant la transmission. – sjd

Répondre

1

SJD, Vous pouvez essayer de créer un renifleur en utilisant la bibliothèque Twisted Python (Twisted) ceci vous permettra de capturer les données brutes qui arrivent sur votre réseau aussi longtemps que vous pouvez dire Twisted quel port écouter (ou écouter all), et où vider le fichier, etc, puis faire quelque chose avec ce nouveau fichier (comme l'envoyer dans ffmpeg pour tester l'enregistrement de .mov).

Vous devrez générer le fichier .sdp pour ffmpeg, donc à moins d'automatiser cette étape du processus, c'est vraiment ennuyeux. Je travaille actuellement sur la partie automatisation mais je me bats tout autant. J'utilise EventMachine pour Ruby avec FFMPEG et .sdp de SIP.

Espérons que cela aide un peu.

+0

cool merci, bonne idée je pourrais essayer ça. – sjd

+1

@sjd merci pour le commentaire. Une chose que j'ai faite était juste dépouiller les en-têtes RTP du fichier pcap. C'est facile à faire pour h263, il faut juste savoir avec quoi on travaille. Vous pouvez récupérer les données de trame brute h263 en supprimant l'en-tête RTP et en ajoutant 0000 aux données utiles. (La mise en paquets rtp nécessite de supprimer les 4 zéros de la trame) Voici un analyseur d'en-tête rtp pour les paquets RTP (vous pouvez facilement les obtenir avec wireshark). https://github.com/newfront/dailyhacking/blob/master/source/media/rtp_header_parser.rb. (code ruby, mais ne devrait pas être difficile à traduire en python). – newfront