我有一个pcap文件,其中包含带有H.264视频的RTP和带有SDP的SIP的捕获。我希望能够从RTP流中提取视频并将其保存到文件中。 (h264video.mkv或类似的东西)
我已经开始将gstreamer视为可能的解决方案,但我无法对从程序中收到的任何输出进行故障排除。
gst-launch -v filesrc location=testh264.rtp
! application/x-rtp,media=video,clock-rate=90000,payload=123,encoding-name=H264
! rtph264depay
! ffdec_h264
! xvimagesink
这是我尝试过的一个例子,但我无法通过rtph264depay,因为我发送的文件格式无效。如何从我的pcap文件中提取h264有效负载以便与gstreamer / rtph264depay一起使用?
答案 0 :(得分:2)
问题是pcap文件不包含原始RTP有效负载,它以某种方式格式化(here is how)。
您可以使用pcapparse plugin提取原始数据:
$ gst-launch filesrc location=testh264.rtp
! pcapparse
! application/x-rtp,media=video,clock-rate=90000,payload=123,encoding-name=H264
! rtph264depay ! ffdec_h264
! autovideosink
答案 1 :(得分:1)
你应该有autovideosink可以自动为你选择正确的视频接收器。否则,它可能就像“dshowsink”。尝试gst-inspect
,同时为dshow或directshow点击它,它应该告诉你要使用什么。
答案 2 :(得分:0)
我看到这篇帖子已经老了,但我有同样的问题,这是我的管道工作(使用gstreamer-1.0):
C:\gstreamer\1.0\x86_64\bin>gst-launch-1.0.exe -m -v filesrc location=C:/Work/log.pcap ! pcapparse src-port=7000 caps="application/x-rtp,media=video,payload=96,clock-rate=90000,encoding-name=H264,profile-level-id=4d0029,sprop-parameter-sets=\"Z00AKeKQFoe2BqwYBBuHiRFQ,aO48gA==\"" ! rtph264depay ! video/x-h264, width=740, height=480, framerate=(fraction)15/1 ! avdec_h264 ! avimux ! filesink location=C:/Work/out.avi
我从发送rtp流的摄像机的SDP文件中获取的sprop-parameter-sets。