[Ffmpeg-devel] RTSP with Axis 213 camera

Luca Barbato lu_zero
Tue Apr 11 23:43:46 CEST 2006


Michael A. Kohn wrote:
> hi all..
> 
> I'm having trouble with ffmpeg doing an RTSP stream from an Axis 213
> camera.  I've been playing around with the source code trying to fix it
> myself, but I think I'm finally stuck.
> 
> The problem:  ffplay can connect to this camera and displays video
> perfectly for exactly 1 minute.  After 1 minute it hangs.
> 
> Test platforms: Linux 2.6.14-gentoo-r2 AMD 64
>                 Darwin 7.x - Pentium 4
> 
> When playing the video using mplayer, it works perfectly.  I realize
> mplayer has different RTSP code so I did a TCP dump to try and figure out
> what's  wrong.  It looks like there are RTCP packets that get sent back
> and forth between mplayer and the camera.  The camera sends 60 bytes every
> 3 seconds or so and mplayer sends 56 bytes.  When connecting with ffmpeg
> the camera sends 60 bytes, but ffmpeg doesn't send the 56 bytes back.
> 
> TCPdump using MPlayer of the RTCP packets:
> 
> 13:43:14.469879 IP 192.168.100.144.50179 > 192.168.100.22.32885: UDP,
> length 60
>         0x0000:  4500 0058 0000 4000 4011 f09d c0a8 6490
>         0x0010:  c0a8 6416 c403 8075 0044 b11f 80c8 0006
>         0x0020:  60a9 d455 83b7 ed6f 9e9e 7271 7858 8a95
>         0x0030:  0000 166c 0070 35aa 81ca 0007 60a9 d455
>         0x0040:  0114 726f 6f74 4031 3932 2e31 3638 2e31
>         0x0050:  3030
> 
> 13:43:16.757706 IP 192.168.100.22.32885 > 192.168.100.144.50179: UDP,
> length 56
>         0x0000:  4500 0054 000a 4000 4011 f097 c0a8 6416
>         0x0010:  c0a8 6490 8075 c403 0040 4a49 81c9 0007
>         0x0020:  4e33 b2b9 60a9 d455 0000 0000 0000 3393
>         0x0030:  0000 008b ed6f 9e9e 0002 49a9 81ca 0005
>         0x0040:  4e33 b2b9 010c 7375 7065 722d 6b6e 756c
>         0x0050:  6c61
> 
> Breaking down these packets from rfc1889 section 6:
> 
> from camera to mplayer starting at 80c8 this should be an SR (sender
> report) packet:
> 
> version: 2
> reception report count: 0
> packet type: 200
> length: 6 + 1 (32 bit words)
> SSRC: 60a9 d455
> NTP timestamp: 83b7 ed6f 9e9e 7271
> RTP timestamp: 7858 8a95
> sender packet count: 0000 166c
> sender octet count: 0070 35aa
> 
> version: 2
> report count: 1
> packet type: 202
> length: 7 + 1 (32 bit words)
> SSRC: 60a9 d455
> CNAME: 1
> LENGTH: 0x14
> text: root at 192.168... etc
> 
>>From mplayer to the camera:
> 
> version: 2
> report count: 1
> packet type: 201 (rr)
> length: 7 + 1 (32 bit words)
> ssrc: 4e33 b2b9
> ssrc_1: 60a9 d455
> fraction lost: 0
> cumulative packets lost: 0
> highest seq received: 0000 3393
> interarrival jitter: 0000 008b
> last SR: ed6f 9e9e
> delay since last sr: 0002 49a9
> 
> and then CNAME follows again just like it does for the SS
> 
> The last piece of info I have... when ffmpeg connects to the camera
> with TCP connect, the Transport header comes back as:
> RTP/AVP/UDP;unicast;mode=play;server_port=50224-50225;client_port=5000-5001
> for example.
> 
> I tried modifying rtpproto.c in the function rtp_read() it would send 56
> bytes of data to the camera every time an SS packet comes in from the
> camera to let it know it was alive.. to try and keep the camera sending
> data, but I didn't know what to put for the values ssrc, jitter, last sr,
> and delay since last sr.. so I put something I thought looked right..
> anyway, it obviously doesn't work.. :)
> 
> Anyway, has anyone seen this also and is anyone working on it or can give
> me any clues how to fix it?
> 
> Thanks!
> 
> /mike
> 
> 
> 
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
> http://mplayerhq.hu/mailman/listinfo/ffmpeg-devel
> 
0- read the rtp related drafts.

1- look at nemesi/libnms and rip the rtcp logic =)

2- 1+0

lu

PS: http://streaming.polito.it

-- 

Luca Barbato

Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero





More information about the ffmpeg-devel mailing list