我有使用libpcap捕获的流H264视频的RTP数据包转储。我想知道是否有人知道可以从中生成可播放视频文件的工具。

谢谢

最佳答案

尝试将RTP文件流导出到转储文件中(在Wireshark中,右键单击RTP数据包→“跟随UDP流”→“另存为”),然后通过gst-launch发送文件以进行多路分解。您需要对此稍作尝试,但这应该是正确的主意:

$ gst-launch-0.10 filesrc location=dump.rtp ! rtpmp2tdepay ! filesink location=dump.ts


上面假设RTP是MPEG TS流。如果还有其他内容(例如原始Vorbis,G.729,PCM,MP3或其他内容),则需要使用其他“ depayloader”。您可以使用gst-inspect来发现:

$ gst-inspect-0.10 | egrep 'rtp.*depay'
quicktime:  rtpxqtdepay: RTP packet depayloader
dtmf:  rtpdtmfdepay: RTP DTMF packet depayloader
rtp:  rtpdepay: Dummy RTP session manager
rtp:  rtpac3depay: RTP AC3 depayloader
rtp:  rtpbvdepay: RTP BroadcomVoice depayloader
rtp:  rtpceltdepay: RTP CELT depayloader
[...]


默认情况下,GStreamer(包括gst-launchgst-inspect工具)应随所有现代Linux发行版一起提供。如果不是这样,它应该很容易安装。显然,我的示例非常通用,因此您需要使用我的建议自己找到确切的答案。希望我能给您足够的帮助。 :)

关于video - H264 RTP数据包转储并生成快速时间文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2539417/

10-13 01:26