S
S
Sergey Kutylev2014-11-16 22:46:59
RTMP
Sergey Kutylev, 2014-11-16 22:46:59

How to properly stream in ffmpeg when capturing a stream from rtsp and returning it to rtmp?

Problem when capturing rtsp stream from camera ip and sending it via rtmp and ffmpeg. Simply giving it to a file turns out without problems, but when using rtmp, a connection refused error is issued.
Below is the ffmpeg listing.

ffmpeg version 2.4.3 Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov 16 2014 14:47:18 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: 
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
Splitting the commandline.
Reading option '-i' ... matched as input file with argument 'rtsp://172.16.7.18:554/play1.sdp'.
Reading option '-threads' ... matched as AVOption 'threads' with argument '4'.
Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '704x576'.
Reading option '-r' ... matched as option 'r' (set frame rate (Hz value, fraction or abbreviation)) with argument '25'.
Reading option '-ar' ... matched as option 'ar' (set audio sampling rate (in Hz)) with argument '22050'.
Reading option '-an' ... matched as option 'an' (disable audio) with argument '1'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'flv'.
Reading option 'rtmp://172.16.16.2:1935/live/cam' ... matched as output file.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file rtsp://172.16.7.18:554/play1.sdp.
Successfully parsed a group of options.
Opening an input file: rtsp://172.16.7.18:554/play1.sdp.
[rtsp @ 0x1fafe40] SDP:
v=0
o=CV-RTSPHandler 1123412 0 IN IP4 172.16.7.18
s=Trendnet TV-IP612P
c=IN IP4 0.0.0.0
t=0 0
a=charset:Shift_JIS
a=range:npt=now-
a=control:*
a=etag:1234567890
m=video 0 RTP/AVP 99
a=rtpmap:99 H264/90000
a=fmtp:99 profile-level-id=42A01E;packetization-mode=1;sprop-parameter-sets=Z0IAKOkBYCTYFxIAIPWAAzf5gDYgQlA=,aM44gA==
a=control:trackID=1
m=audio 0 RTP/AVP 0 
a=rtpmap:0 PCMU/8000
a=control:trackID=2
a=sendonly

[rtsp @ 0x1fafe40] video codec set to: h264
[rtsp @ 0x1fafe40] RTP Profile IDC: 42 Profile IOP: a0 Level: 1e
[rtsp @ 0x1fafe40] RTP Packetization Mode: 1
[rtsp @ 0x1fafe40] Extradata set to 0x1fa6be0 (size: 35)!
[rtsp @ 0x1fafe40] audio codec set to: pcm_mulaw
[rtsp @ 0x1fafe40] audio samplerate set to: 8000
[rtsp @ 0x1fafe40] audio channels set to: 1
[udp @ 0x1faf620] end receive buffer size reported is 131072
[udp @ 0x1fc39c0] end receive buffer size reported is 131072
[udp @ 0x1fd4280] end receive buffer size reported is 131072
[udp @ 0x1fd3fc0] end receive buffer size reported is 131072
[rtsp @ 0x1fafe40] hello state=0
[h264 @ 0x1fb2440] no picture 
[rtsp @ 0x1fafe40] All info found
rfps: 24.666667 0.017816
rfps: 24.750000 0.014629
rfps: 24.833333 0.012175
rfps: 24.916667 0.010457
rfps: 25.000000 0.009473
rfps: 25.083333 0.009223
    Last message repeated 1 times
rfps: 25.166667 0.009708
    Last message repeated 1 times
rfps: 25.250000 0.010928
    Last message repeated 1 times
rfps: 25.333333 0.012882
    Last message repeated 1 times
rfps: 25.416667 0.015571
rfps: 25.500000 0.018994
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://172.16.7.18:554/play1.sdp':
  Metadata:
    title           : Trendnet TV-IP612P
  Duration: N/A, start: 0.000000, bitrate: 64 kb/s
    Stream #0:0, 23, 1/90000: Video: h264 (Baseline), yuvj420p(pc), 704x576 [SAR 12:11 DAR 4:3], 1/25, 12.50 fps, 25.08 tbr, 90k tbn, 25 tbc
    Stream #0:1, 14, 1/8000: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
Successfully opened the file.
Parsing a group of options: output file rtmp://172.16.16.2:1935/live/cam.
Applying option s (set frame size (WxH or abbreviation)) with argument 704x576.
Applying option r (set frame rate (Hz value, fraction or abbreviation)) with argument 25.
Applying option ar (set audio sampling rate (in Hz)) with argument 22050.
Applying option an (disable audio) with argument 1.
Applying option f (force format) with argument flv.
Successfully parsed a group of options.
Opening an output file: rtmp://172.16.16.2:1935/live/cam.
[tcp @ 0x210c280] Connection to tcp://172.16.16.2:1935 failed: Connection refused
[rtmp @ 0x210c420] Cannot open connection tcp://172.16.16.2:1935
rtmp://172.16.16.2:1935/live/cam: Connection refused

Answer the question

In order to leave comments, you need to log in

1 answer(s)
D
Dan Ivanov, 2014-11-17
@ptchol

It seems to be written: 172.16.16.2:1935 failed: Connection refused.
The host rejected the connection. FFmpeg is not able to act as an rtmp server, it can only publish a stream to the destination you specified.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question