web-dev-qa-db-fra.com

Forcer FFMPEG à utiliser TCP lors de la lecture d'un flux RTSP

J'exécute ffmpeg (Windows 7, 64 bits) à partir de la ligne de commande pour obtenir une trame à partir d'un flux RTSP (deuxième canal de mon DVR):

ffmpeg  -i "rtsp://xxx.xxx.xxx.xxx:554/user=xxxx&password=xxxx&channel=2&stream=0.sdp" -rtsp_transport tcp -y video.jpg

Après avoir couru, il attend environ 10 secondes puis j'obtiens:

[rtsp @ 026fd840] UDP timeout, retrying with TCP

Après une autre longue attente (environ 2 minutes), j'obtiens:

[rtsp @ 028dd840] Could not find codec parameters for stream 0 (Video: h264): unspecified size

J'ai lu quelque part que je dois forcer l'utilisation de TCP, car le passage d'UDP à TCP ne fonctionnera pas.

Je ne comprends pas pourquoi -rtsp_transport tcp Ne fonctionne pas.

J'utilise ffmpeg version N-62509-g97751e1 built on Apr 17 2014 22:01:31 with gcc 4.8.2 (GCC).

Aidez-moi, s'il vous plaît. Je vous remercie.

17
gary_star

Mettez simplement le -rtsp_transport tcp juste après ffmpeg pour l'appliquer sur le flux d'entrée. Comme ça:

ffmpeg -rtsp_transport tcp -i "rtsp://x.x.x.x:554/user=x&password=x&channel=2&stream=0.sdp" -y video.jpg
29
Alex Fotios