Salut, je m'étais lancé il y a pas si longtemps dans la
programmation d'un client rtmp. Pour répondre partiellement à ta
question je précise que les flux ne sont absolument pas cryptés (du
moins pas nativement) , pour ce qui est de la méthode de
connexion elle est trés simple:
1) Le client en envoie un paquet de 1536 bytes. qui commence par 03.
2) Le serveur repond par un paquet de 2 x 1536 qui commence par 03 aussi.
3) Le client renvoie les 1536 premiers bytes du paquet envoyé par le
serveur apres le premier byte (ici 03) ainsi que toutes les
informations nécessaires à la connexion. Ces informations dependent
evidemment du serveur mais je te conseille de sniffer des connexions
sur plusieurs serveurs differents tu devrais voir une structure commune
se dessiner.
4) Le serveur répond par un connection success (je simplifie ce n'est
evidemment pas un "string", le paquet à ici une structure etc. Fais un
dump d'une session sniffée et essaye de l'envoyer je pense que ca
devrait marcher ).
5) Le client envoie un paquet sendstartdata, même remarque que pour le
4, avec en plus un doute quant à l'obligation de ce paquet, bref
sniffing une fois de plus .
Pour le suite je suis à peu prés sur, mais je peux me tromper, que tout depend du serveur.
Voila j'espère avoir pu t'aider un minimum, pour la suite je te
conseille de fouiller sur www.osflash.org, tu trouveras pas mal de
détails concernant la structure des paquets, pas mal d'infos sur le
protocole AMF qui directement inspiré RTMP. Voir aussi le projet Red5.
PS: Pour les paquets initiaux du handshake j'ai simplifié a l'extrême
puisque la méthode utilisée pour générer un handshake semblable aux
clients et serveurs flash est maintenant connue, je ne l'ai pas
développée pour simplifier l'approche, et parcqu'elle n'est pas
indispensable pour établir une connexion, mais tu peux la trouver
sur osflash sinon fais-le moi savoir et je la developperais ici.
Rions un peu en attendant la mort.