2017-09-04 17 views
0

J'ai écrit un logiciel qui capture les paquets RTP de mon appareil photo externe et est capable de les transférer. J'ai créé un fichier SDP et l'ai chargé dans VLC, puis j'ai transmis les paquets RTP à VLC et j'ai confirmé qu'il était correctement lu.Comment implémenter RTSP Appuyez sur pour que mon flux source soit transféré vers Wowza Cloud?

Maintenant je voudrais diffuser vers Wowza Cloud. Il semble que la façon de le faire est avec un flux Push RTSP que j'ai configuré. Malheureusement, je ne trouve aucune documentation concernant le protocole RTSP Push.

Je comprends RTSP (Pull) et comment implémenter cela, mais pas RTSP Push. Il semble que les caméras supportent cela, donc ce doit être un protocole établi, mais le push n'est mentionné nulle part dans les spécifications RTSP. Wowza Cloud me donne un point de terminaison, un port, un nom de flux et une authentification, mais je ne sais pas quoi en faire. Il semble que SDP Announce soit impliqué, mais il n'y a pas de guide clair sur la façon de l'implémenter. Quelqu'un peut-il expliquer comment implémenter ce protocole RTSP Push?

Répondre

0

Le RTSP protocole poussoir pour écouter de Wowza comprend les commandes RTSP suivante:

  1. OPTIONS
  2. ANNONCENT
  3. SETUP (pour chaque flux RTP, soit audio et vidéo)
  4. RECORD
  5. TEARDOWN (après le streaming est terminé)

L'ANNOUNCE est la même chose que DESCRIBE, seulement vous êtes en train de pousser l'information SDP comme le corps de la commande. Pendant la configuration, le serveur répondra avec l'adresse IP et le port pour envoyer les paquets RTP via UDP (via l'en-tête Transport).

Les détails du processus peuvent être inspectés en utilisant FFMPEG et Wireshark. La commande ffmpeg est la suivante:

ffmpeg -re -i inputfile.mp4 -pix_fmt yuv420p -vsync 1 -vcodec libx264 -r 23.976 -threads 0 -b:v: 1024k -bufsize 1024k -preset veryfast -profile:v baseline -tune film -g 48 -x264opts no-scenecut -acodec aac -b:a 192k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -rtsp_transport tcp -f rtsp rtsp://username:[email protected]:1935/live/myStream 

Enfin, il est essentiel de garder le socket ouvert pendant toute la session, ou la session de streaming sera fermé.