Pmmlabs / OpenPeriscope

Unofficial Periscope client
GNU General Public License v2.0
74 stars 30 forks source link

Understanding of PSP - new protocol also known as vidman #22

Open DmT021 opened 8 years ago

DmT021 commented 8 years ago

This will be a thread for notes about details of the new protocol - PSP (PSPS - secure), also known as vidman (previous was liveorigin - RTMP). First of all it uses the same encoding as RTMP: same packet headers, and same data encoding - AMF. But it also has differences, for example I didn't find handshake packets. Publishing Publishing process requires two messages: "fast-publish" and "onMetadata". To describe a packet I will use the following terms: channel (message type id), csid (channel stream id), stream - these are params of RTMP message. Fast-publish message: RTMP header

Data Array of 6 items:

Metadata message: RTMP header

Data Array of 2 items:

DmT021 commented 8 years ago

Instead of handshake client sends 4 bytes: {4, 1, 0, 0}. Don't know what they mean, don't look like a valid RTMP.

DmT021 commented 8 years ago

After metadata there are two another packets: video and audio. Video RTMP header

Data 17 00 00 00 00 01 64 00 15 ff e1 00 10 67 64 00 15 ac d3 05 01 27 e5 80 6d 0a 12 9c 00 01 00 05 68 ee 06 e2 c0

Audio RTMP header

Data af 00 12 08

baliscope commented 8 years ago

Hi DmT021,

Are you any closer to figuring out this protocol? I've little experience with RTMP/RTMPS but I'm always willing to learn. I'm most interested in receiving the vidman streams when HLS endpoints aren't available - for example, by using rtmpdump/ffmpeg.

Any ideas, and any suggestions on how I can help?