- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要将使用 recvfrom() 接收到的 rtp 数据包存储到 .pcap 文件中。
我试图打开一个扩展名为 .pcap 的文件,并直接 fwrite 我收到的任何内容(即 void *buf),但是当我尝试使用 wireshark 打开该文件时,它给出了错误声明“不可理解”我应该怎么做才能让它变得易于理解??
我使用的代码:
recvfrom(sockfd, buf, len, flags, (struct sockaddr *)&src_addr->ss, &src_addr->len);
fp=fopen("test.pcap","a+");
fprintf(fp, "%s",buf);
在 UDP 连接中,我如何接收 rtp 数据包并将其存储到可理解的 .pcap 文件中?收到的 rtp pcakets 是否需要添加任何额外的内容?
最佳答案
您必须添加以下 header 才能将数据包写入 pcap 文件。
全局标题
This header starts the libpcap file and will be followed by the first packet header:
typedef struct pcap_hdr_s {
guint32 magic_number; /* magic number */
guint16 version_major; /* major version number */
guint16 version_minor; /* minor version number */
gint32 thiszone; /* GMT to local correction */
guint32 sigfigs; /* accuracy of timestamps */
guint32 snaplen; /* max length of captured packets, in octets */
guint32 network; /* data link type */
} pcap_hdr_t;
记录(数据包) header :
Each captured packet starts with (any byte alignment possible):
typedef struct pcaprec_hdr_s {
guint32 ts_sec; /* timestamp seconds */
guint32 ts_usec; /* timestamp microseconds */
guint32 incl_len; /* number of octets of packet saved in file */
guint32 orig_len; /* actual length of packet */
} pcaprec_hdr_t;
检查 link标题的解释。
检查这个link示例代码片段。
关于c - 在 C 中,如何将接收到的 rtp 数据包存储到 .pcap 文件中 - UDP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26581858/
我正在尝试从 RTP URL 流式传输 RTP 数据包(正在流式传输音频),例如rtp://@225.0.0.0经过如此多的研究后,我在我的设备中流式传输了 URL 并使用 https://githu
如果客户端想要观看我的 RTSP 服务器上的流,它首先尝试通过 UDP 协议(protocol)设置流。我如何告诉它我的服务器只支持 RTP/AVP/TCP 并且它应该切换传输? 我想终止我服务器上的
我需要在 RTP 数据包中检测 MPEG4 I-Frame。我知道如何删除 RTP header 并在其中获取 MPEG4 帧,但我不知道如何识别 I 帧。 它有特定的签名/标题吗? 最佳答案 好的,
我是 VoIP 新手。我想创建一个使用 RTP 使用客户端/服务器架构流式传输音频的应用程序。可以使用不同的 API,但我需要在核心级别上进行理解。我研究过RFC。任何人都可以建议我如何制作一个音频
我像这样通过 ffmpeg 开始视频传输: ffmpeg -f video4linux2 -i /dev/video0 -vcodec libx264 -preset ultrafast -crf 2
我正在尝试通过 ffserver 从 usbcam 和 mic throw ffmpeg 流式传输视频和音频 我有 2 个错误: - ffmpeg 似乎运行正常,但显示“数据看起来不像 RTP 数据包
来自 Mozilla 网站:https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API “一个 MediaStream 由零个
几天来,我已经在寻找如何将 MJPEG rtp 流转换为 MP4 rtp 流的解决方案。 已经尝试过这样的事情: ffmpeg -i rtsp://192.168.10.8:554/stream1/m
我一直在试图找出一种计算以下内容的方法: 带宽、延迟、当前上传和下载速度 . 并且对我为 INBOUND-RTP、OUTBOUND-RTP 和 REMOTE-INBOUND-RTP 获得的值感到困惑。
我需要将一个 .rtp 文件(已使用 RTP 代理录制)转换为 .wav 文件。如果有人知道如何做到这一点,请给我您的解决方案。 提前致谢:) 最佳答案 聚会可能有点晚了,但我最近遇到了同样的问题,我
我正在使用 ffmpeg libavformat 库编写仅视频的 webm 文件。我在我的服务器上收到了 VP8 编码的 rtp 流。我已经成功地将 rtp 字节流(来自 rtp 有效负载)分组到单独
我正在尝试通过 RTP 多播流式传输 .wav 音频文件。我正在使用以下命令: ffmpeg -re -i Melody_file.wav -f rtp rtp://224.0.1.211:5001
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
我有一个要发送到机顶盒的 RTP 视频流。不幸的是,机顶盒不支持 RTP,我已将其转换为 Smooth Streaming。 我尝试过使用 Wowza Media Server 进行流转换,但没有成功
我试图弄清楚哪个是 RTP 数据包的最大大小。我知道最小 header 大小为 12 个字节,但我没有找到任何有关有效负载的信息。 RTP 数据包的最大大小可能与 UDP 有效负载的最大大小相同吗?我
我们有捕获的 pcap 文件,其中包含每个 rfc6716 的 RTP opus 有效负载,现在我们可以切断 RTP header 并提取 opus 有效负载,我们希望根据规范将有效负载封装到 ogg
我正在尝试通过RTP将AAC音频流传输到Wowza服务器。我设法使其正常工作,但交替听到的声音非常快,然后出现1s的空白。采样率是22050,每个数据包的帧数是1024。 目前,我的时间戳是这样生成的
我正在尝试在我的 iPhone 中接收实时 RTP 音频流,但我不知道如何开始。我正在寻找一些 sample ,但我在任何地方都找不到它们。 我有一个 Windows 桌面应用程序,它从选定的音频接口
我正在尝试用 C 语言构建一个 RTP 数据包度量分析器,但最终遇到了一个奇怪的问题,我正在削减实现细节以便于公开: 由于 RTP 数据包包含在 UDP 中,因此我的套接字使用以下参数进行初始化: s
我有一个客户端和一个服务器,服务器通过封装在 UDP 内的 RTP 数据包发送音频数据。客户端接收数据包。由于 UDP 没有流量控制,客户端会检查数据包的序列号,如果序列号不正确,则重新排列它们。我的
我是一名优秀的程序员,十分优秀!