wireshark 导出rtpdump 并使用 ffmpeg播放
1,ffmpeg本地rtp播放
ffmpeg -re -i rayna.h264 -vcodec copy -f rtp rtp://30.40.37.23:3000>test.sdp
ffplay -i test.sdp -protocol_whitelist file,udp,rtp
生成 test.sdp
SDP:
v=0o=- 0 0 IN IP4 127.0.0.1
s=Media Server
c=IN IP4 127.0.0.1
t=0 0
a=tool:libavformat 56.40.101
m=video 3000 RTP/AVP 96
a=rtpmap:96 H264/90000
2,在wireshark中导出rtpdump文件
见菜单: 电话->SIP->SIP流 选择导出
3. 使用 rtptools
源码: https://github.com/irtlab/rtptools.git
ffplay -i test.sdp -protocol_whitelist file,udp,rtp
./rtpplay -T -f bbb2.rtpdump 127.0.0.1/3000
关联:
H264 SPS解析参考:
https://gitee.com/leixiaohua1020/H264_Analysis
bs.h
h264_stream.cppvoid read_seq_parameter_set_rbsp(sps_t* sps, bs_t* b); //解析sps代码,需要修改点: int ScalingList4x4[6]; 去掉*,不然 seq_scaling_list_present_flag==1 时解析有问题
4.如果需要使用ffmpeg拉流,貌似命令行弄不了,就使用代码了
fmt_ctx = avformat_alloc_context();
fmt_ctx->protocol_whitelist = "file,udp,rtp";
ret = avformat_open_input(&fmt_ctx, url_in, 0, &opts);