2014-04-23 14 views
8

biegnę ffmpeg (Windows 7, 64bit) z linii poleceń, aby uzyskać ramkę ze strumienia RTSP (drugi kanał z mojego rejestratora):Siła FFMPEG używać protokołu TCP podczas czytania RTSP Stream

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

Po uruchomieniu, to czeka na około 10 sekund, a następnie pojawia się:

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

Po kolejnym długo czekać (2 minuty lub więcej), to otrzymujemy:

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

Czytam gdzieś, że muszę wymusić używanie TCP, ponieważ zmiana z UDP na TCP nie będzie działać.

Nie rozumiem, dlaczego -rtsp_transport tcp nie działa.

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

Proszę, pomóż mi. Dziękuję.

+0

[tak] służy do programowania pytań tylko wtedy, gdy zwykle oczekuje się, że użytkownik wyświetli odpowiedni kod programowania. Twoje pytanie jest bardziej odpowiednie dla [su], i można je głosować/oznaczać jako migrację tam (co jest preferowane w stosunku do przesłuchania grupowego). – LordNeckbeard

Odpowiedz

16

po prostu umieść "-rtsp_transport tcp" zaraz po "ffmpeg", aby miało zastosowanie do strumienia wejściowego. Tak:

ffmpeg -rtsp_transport tcp -i "RTSP: //xxx.xxx.xxx.xxx: 554/user = xxxx & password = xxxx & kanał = 2 & strumień = 0.sdp" -y wideo. jpg

+1

Dlaczego masz '-rtsp_transport tcp' dwa razy? – Notinlist

+0

@Notinlist właśnie zapomniałem usunąć go z oryginalnej odpowiedzi :) Zmieniono! –

Powiązane problemy