通信与流媒体

学习RTP——抓包分析工具

2020-05-16  本文已影响0人  全栈顾问

产生RTP包

使用ffmpeg可以直接生成RTP流。

播放30秒模拟测试流

ffmpeg -re -f lavfi -i sine=d=30 -re -f lavfi -i smptebars=d=30 -acodec libopus -vn -f rtp rtp://127.0.0.1:20000 -an -vcodec libvpx -f rtp rtp://127.0.0.1:20002

播放媒体文件

ffmpeg -re -i files/upload/1.mp4 -acodec libopus -vn -f rtp rtp://127.0.0.1:20016 -an -vcodec libvpx -f rtp -payload_type 100 rtp://127.0.0.1:20018

启动ffmpeg命令后,会输出RTP流的sdp,需要注意里面的payload type值,后面用的到。可以通过payload_type选项指定特定的值。

用tcpdump抓包

通过ifconfig命令查看网卡信息。选择一个网卡,例如:lo0。

sudo tcpdump -i lo0 udp port 20002 -w ./video.pcap

用wireshark分析

如果需要分析媒体帧,需要在Edit->Preferences->Protocols->VP8设置。填上前面payload type的值。

image.png

有用的参考

http://www.ffmpeg.org/ffmpeg-protocols.html#rtp

https://lmtools.com/content/rtp-timestamp-calculation

上一篇 下一篇

猜你喜欢

热点阅读