2014-04-23 13 views
8

Io corro ffmpeg (Windows 7, 64 bit) da linea di comando per ottenere un fotogramma di un flusso RTSP (secondo canale dal mio DVR):Forza ffmpeg per utilizzare il protocollo TCP quando si legge un RTSP flusso

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

Dopo l'esecuzione, si attende per circa 10 secondi e poi ottengo:

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

Dopo un'altra lunga attesa (2 minuti o giù di lì), ottengo:

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

Ho letto da qualche parte che devo forzare usando TCP, perché il passaggio da UDP a TCP non funzionerà.

Non capisco perché -rtsp_transport tcp non funzioni.

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

Per favore aiutatemi. Grazie.

+0

[so] è destinato alle domande di programmazione solo se l'utente è generalmente tenuto a mostrare il codice di programmazione pertinente. La tua domanda è più adatta per [su], e può essere votata/contrassegnata per la migrazione lì (che è preferibile rispetto alla crossposting). – LordNeckbeard

risposta

16

è sufficiente inserire "-rtsp_transport tcp" subito dopo "ffmpeg" in modo che si applichi al flusso di input. Come questo:

ffmpeg -i -rtsp_transport tcp "rtsp: //xxx.xxx.xxx.xxx: 554/user = xxxx & password = xxxx & canale = 2 & flusso = 0.sdp" Video -y. jpg

+1

Perché hai '-rtsp_transport tcp' due volte? – Notinlist

+0

@Notinlist ha appena dimenticato di rimuoverlo dalla risposta originale :) Modificato! –

Problemi correlati