Je suis en streaming une webcam/audio avec la commande:le streaming RTP avec audio FFmpeg et la sortie vidéo de synchronisation
ffmpeg.exe -f dshow -framerate 30 -i video="xxx" -c:v libx264 -an -f rtp rtp://localhost:50041 -f dshow -i audio="xxx" -c:a aac -vn -f rtp rtp://localhost:50043
Fournit les informations sdp suivantes:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
t=0 0
a=tool:libavformat 57.65.100
m=video 50041 RTP/AVP 96
c=IN IP6 ::1
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1
m=audio 50043 RTP/AVP 97
c=IN IP6 ::1
b=AS:128
a=rtpmap:97 MPEG4-GENERIC/44100/2
a=fmtp:97 profile-level-id=1;mode=AAC-
hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=121056E500
Et je lis le flux avec la commande:
ffmpeg.exe -protocol_whitelist file,udp,rtp -i D:\test.sdp -c:v libx264 -c:a aac d:\out.mp4
Dans le fichier résultant, l'audio est légèrement en avance sur la vidéo. J'ai lu que RTCP s'exécute sur le port RTP + 1 et contient des informations de synchronisation. Cependant, je ne vois aucune information RTCP dans le fichier SDP.
Dois-je spécifier quelque chose pour inclure RTCP?
Si ce n'est pas le problème, que puis-je faire d'autre pour synchroniser l'audio et la vidéo?
Wow, merci beaucoup, cela a fait l'affaire! J'avais lu la page DirectShow et essayé toutes les autres suggestions, mais je ne me suis jamais rendu compte qu'il était possible de lire comme une entrée et de diffuser vers deux sorties. –