2010-11-23 6 views
2

Ich habe versucht Tools wie videosnarf, die eine pcap-Datei als Eingabe und erstellt eine rohe .h264-Datei, die später mit ffmpeg codiert werden kann, und schließlich kann mit VLC-Player gespielt werden. Aber Videosnarf kann nur mit h264 Daten umgehen.So rufen Sie H263/H264-Daten aus einer pcap-Datei ab.

Ich bin nicht in der Lage, ein ähnliches Tool zu finden, das h263-Daten aus einer pcap-Datei ausgeben kann. Ich habe versucht, h263-Stream von Wireshark zu entschlüsseln, aber bisher hatte ich kein Glück.

Ich kann in Perl/Python programmieren, aber ich weiß nicht, welche genauen Schritte folgen, um h263 Rohdaten aus einer pcap Datei abzurufen, da ich nicht zuvor mit pcap Capture-Dateien gespielt habe.

+0

Scheint wirklich komisch. Warum solltest du es brauchen? Wahrscheinlichkeiten sind, weil es so Nische ist, dass es nicht existiert. Aber die Quelle ist offen! Wenn Sie es brauchen, sollten Sie entweder darauf achten, es hinzuzufügen, oder jemand anderen zu bekommen. – OmnipotentEntity

+0

Nun, der einzige Grund, warum ich versuche, die Videodaten von pcap abzurufen, besteht darin, die Qualität der Videoübertragung auf der Empfängerseite im Vergleich zu dem während der Übertragung verwendeten Referenzvideo zu kennen. – sjd

Antwort

1

sjd, Sie können versuchen, einen Sniffer mit Twisted-Python-Bibliothek (Twisted) einrichten würde dies ermöglicht es Ihnen, die Rohdaten zu erfassen, wie lange in über Ihr Netzwerk kommen, wie Sie Verdreht, was Port zu hören (oder hören können sagen, alles), und wo die Datei zu, etc. dump und dann etwas mit dieser neuen Datei (wie senden Sie es in ffmpeg, um das Speichern in MOV zu testen).

Sie müssten die .SDP-Datei für ffmpeg generieren, also wenn Sie diesen Schritt des Prozesses automatisieren, ist es wirklich ärgerlich. Ich arbeite gerade an der Automatisierung, aber ich kämpfe genauso.

Ich verwende EventMachine für Ruby mit FFMPEG und .sdp von SIP.

Hoffe das hilft ein wenig.

+0

cool danke, Schöne Idee, ich könnte das versuchen. – sjd

+1

@sjd danke für den Kommentar. Eine Sache, die ich tat, war nur die RTP-Header aus der pcap-Datei zu entfernen. Es ist einfach für h263 zu tun, Sie müssen nur wissen, mit was Sie arbeiten. Sie können die rohen h263-Rahmendaten abfragen, indem Sie den RTP-Header stripen und 0000 zu den Nutzdaten hinzufügen. (RTP-Paketierung erfordert das Entfernen von führenden 4 Nullen aus dem Rahmen) Hier ist ein RTP-Header-Parser für RTP-Pakete (Sie können diese leicht mit Wireshark erhalten). https://github.com/newfront/dailyhacking/blob/master/source/media/rtp_header_parser.rb. (Ruby-Code, sollte aber nicht schwierig sein, in Python zu übersetzen). – newfront

Verwandte Themen