1 开启rtpserver:
http://127.0.0.1:80/index/api/openRtpServer?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc&port=30000&tcp_mode=1&stream_id=test123&enable_tcp=1 2 发流:mp4 解析后数据是RTP-ES发出去的,不是RTP-PS-ESffmpeg -re -i "C:\output.mp4" -vcodec copy -an -f rtp rtp://127.0.0.1:30000
3 会发现没有流注册(我的MP4是10GOP的,关键帧和SPSPPS很频繁)
发现是跟PT值有关;ffmpeg发的RTP-ES的PT值是96;与config.ini 中RTP-PS相同了;注意区分;修改配置文件,让这个96的PT值对应RTP-ES(h264_pt);或者发RTP包打一个其他的PT值,然后ZLM配置文件进行更新
bool GB28181Process::inputRtp 函数会根据PT值创建不同的track,走不同的解码器,如果ES流走了PS解析,那就无法解析到帧信息和裸数据;就无法进行媒体注册
另外;如果发包的PT值和码流信息,以及config都是对应的;那无法及时注册,可能是因为,送过来的数据没有关键帧;或者是没有SPS。PPS;或者是只接收了部分不完整的帧
标签:PS,解析,zlmediakit,配置文件,PT,RTP,推流,ES From: https://www.cnblogs.com/8335IT/p/17652351.html