[FFmpeg-trac] #7297(undetermined:new): RTSP over HTTP does not work (with some devices) since v2.0.7

FFmpeg trac at avcodec.org
Wed Jul 4 16:57:01 EEST 2018


#7297: RTSP over HTTP does not work (with some devices) since v2.0.7
-------------------------------------+-------------------------------------
             Reporter:  RafaG        |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 I want to capture from AXIS IP Camera using RTSP over HTTP.
 Older models (I guess with different RTSP server) work, but with newer
 models it only works on versions <= 2.0.7. I tried with every newer
 version always getting error "Input/output error".
 It seems to connect but it stalls and after a while throws the error.
 Tested with different new cameras with same results.
 VLC works on all of them.

 How to reproduce:

 Working example of output with 2.0.7:

 ffmpeg-2.0.7$ ./ffmpeg -debug 100 -rtsp_transport http -i
 "rtsp://root:camera84@192.168.0.77:80/axis-media/media.amp" -codec copy -y
 /tmp/test.mkv
 ffmpeg version 2.0.7 Copyright (c) 2000-2015 the FFmpeg developers
   built on Jul  4 2018 15:34:36 with gcc 6.3.0 (Debian 6.3.0-18+deb9u1)
 20170516
   configuration:
   libavutil      52. 38.100 / 52. 38.100
   libavcodec     55. 18.102 / 55. 18.102
   libavformat    55. 12.100 / 55. 12.100
   libavdevice    55.  3.100 / 55.  3.100
   libavfilter     3. 79.101 /  3. 79.101
   libswscale      2.  3.100 /  2.  3.100
   libswresample   0. 17.102 /  0. 17.102
  matched as AVOption 'debug' with argument '100'.
 Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport'
 with argument 'http'.
 Reading option '-i' ... matched as input file with argument
 'rtsp://root:camera84@192.168.0.77:80/axis-media/media.amp'.
 Reading option '-codec' ... matched as option 'codec' (codec name) with
 argument 'copy'.
 Reading option '-y' ... matched as option 'y' (overwrite output files)
 with argument '1'.
 Reading option '/tmp/test.mkv' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option y (overwrite output files) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input file
 rtsp://root:camera84@192.168.0.77:80/axis-media/media.amp.
 Successfully parsed a group of options.
 Opening an input file: rtsp://root:camera84@192.168.0.77:80/axis-
 media/media.amp.
 [rtsp @ 0x5556db7a0f00] SDP:
 v=0
 o=- 10989952236607861289 1 IN IP4 192.168.0.77
 s=Session streamed with GStreamer
 i=rtsp-server
 t=0 0
 a=tool:GStreamer
 a=type:broadcast
 a=range:npt=now-
 a=control:rtsp://192.168.0.77:80/axis-media/media.amp
 m=video 0 RTP/AVP 96
 c=IN IP4 0.0.0.0
 b=AS:50000
 a=rtpmap:96 H264/90000
 a=fmtp:96 packetization-mode=1;profile-level-id=4d0029;sprop-parameter-
 sets=Z00AKeKQFAX/LgLcBAQGkHiRFQ==,aO48gA==
 a=control:rtsp://192.168.0.77:80/axis-media/media.amp/stream=0
 a=framerate:60.000000
 a=transform:1.000000,0.000000,0.000000;0.000000,1.000000,0.000000;0.000000,0.000000,1.000000

 [rtsp @ 0x5556db7a0f00] video codec set to: h264
 [NULL @ 0x5556db7a8f80] RTP Packetization Mode: 1
 [NULL @ 0x5556db7a8f80] RTP Profile IDC: 4d Profile IOP: 0 Level: 29
 [NULL @ 0x5556db7a8f80] Extradata set to 0x5556db7a8400 (size: 31)!
 [rtsp @ 0x5556db7a0f00] hello state=0
 [rtsp @ 0x5556db7a0f00] All info found
 rfps: 59.750000 0.014718
 rfps: 59.833333 0.006515
     Last message repeated 1 times
 rfps: 59.916667 0.001610
     Last message repeated 1 times
 rfps: 60.000000 0.000000
     Last message repeated 1 times
 rfps: 59.940060 0.000825
     Last message repeated 1 times
 Input #0, rtsp, from 'rtsp://root:camera84@192.168.0.77:80/axis-
 media/media.amp':
   Metadata:
     title           : Session streamed with GStreamer
     comment         : rtsp-server
   Duration: N/A, start: 0.033344, bitrate: N/A
     Stream #0:0, 28, 1/90000: Video: h264 (Main), yuvj420p, 640x360 [SAR
 1:1 DAR 16:9], 1/180000, 60 tbr, 90k tbn, 180k tbc
 Successfully opened the file.
 Parsing a group of options: output file /tmp/test.mkv.
 Applying option codec (codec name) with argument copy.
 Successfully parsed a group of options.
 Opening an output file: /tmp/test.mkv.
 Successfully opened the file.
 Output #0, matroska, to '/tmp/test.mkv':
   Metadata:
     title           : Session streamed with GStreamer
     comment         : rtsp-server
     encoder         : Lavf55.12.100
     Stream #0:0, 0, 1/1000: Video: h264 (H264 / 0x34363248), yuvj420p,
 640x360 [SAR 1:1 DAR 16:9], 1/90000, q=2-31, 1k tbn, 90k tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 Press [q] to stop, [?] for help
 [matroska @ 0x5556db7a9ba0] Writing block at offset 642, size 19604, pts
 0, dts 0, duration 0, flags 128
 [matroska @ 0x5556db7a9ba0] Writing block at offset 20254, size 2098, pts
 0, dts 0, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 22359, size 453, pts
 50, dts 50, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 22819, size 272, pts
 100, dts 100, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 23098, size 303, pts
 250, dts 250, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 23408, size 1836, pts
 317, dts 317, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 25251, size 1636, pts
 400, dts 400, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 26894, size 305, pts
 450, dts 450, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 27206, size 2210, pts
 583, dts 583, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 29423, size 2145, pts
 717, dts 717, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 31575, size 2037, pts
 783, dts 783, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 33619, size 1899, pts
 817, dts 817, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 35525, size 359, pts
 867, dts 867, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 35891, size 256, pts
 917, dts 917, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 36154, size 2038, pts
 1033, dts 1033, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 38199, size 15803, pts
 1367, dts 1367, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 54009, size 5894, pts
 1433, dts 1433, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 59910, size 770, pts
 1533, dts 1533, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 60687, size 2478, pts
 1667, dts 1667, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 63172, size 474, pts
 1717, dts 1717, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 63653, size 3049, pts
 1750, dts 1750, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 66709, size 545, pts
 1800, dts 1800, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 67261, size 2958, pts
 1833, dts 1833, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 70226, size 2768, pts
 1850, dts 1850, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 73001, size 2772, pts
 1867, dts 1867, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 75780, size 2487, pts
 1950, dts 1950, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 78274, size 436, pts
 2000, dts 2000, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 78717, size 2688, pts
 2117, dts 2117, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 81412, size 408, pts
 2167, dts 2167, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 81827, size 13288, pts
 2217, dts 2217, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 95122, size 3019, pts
 2267, dts 2267, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 98148, size 4228, pts
 2333, dts 2333, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 102383, size 607, pts
 2383, dts 2383, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 102997, size 3412, pts
 2417, dts 2417, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 106416, size 3512, pts
 2483, dts 2483, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 109935, size 490, pts
 2533, dts 2533, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 110432, size 409, pts
 2583, dts 2583, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 110848, size 343, pts
 2633, dts 2633, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 111198, size 279, pts
 2683, dts 2683, duration 0, flags 0
 Writing block at offset 111484, size 272, pts 2733, dts 2733, duration 0,
 flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 111763, size 205, pts
 2783, dts 2783, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 111975, size 270, pts
 2833, dts 2833, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 112252, size 233, pts
 2883, dts 2883, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 112492, size 252, pts
 2933, dts 2933, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 112751, size 224, pts
 2983, dts 2983, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 112982, size 257, pts
 3033, dts 3033, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 113246, size 201, pts
 3083, dts 3083, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 113454, size 205, pts
 3133, dts 3133, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 113666, size 206, pts
 3183, dts 3183, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 113879, size 223, pts
 3233, dts 3233, duration 0, flags 0
 Writing block at offset 114109, size 3710, pts 3300, dts 3300, duration 0,
 flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 117826, size 555, pts
 3350, dts 3350, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 118388, size 398, pts
 3400, dts 3400, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] Writing block at offset 118793, size 351, pts
 3450, dts 3450, duration 0, flags 0
 [matroska @ 0x5556db7a9ba0] end duration = 3450
 frame=   54 fps= 44 q=-1.0 Lsize=     116kB time=00:00:03.45 bitrate=
 276.4kbits/s
 video:115kB audio:0kB subtitle:0 global headers:0kB muxing overhead
 0.886312%
 0 frames successfully decoded, 0 decoding errors
 [AVIOContext @ 0x5556db929ac0] Statistics: 24 seeks, 72 writeouts


 NOT WORKING example of output with 2.1.8:

 ffmpeg-2.1.8$ ./ffmpeg -debug 100 -rtsp_transport http -i
 "rtsp://root:camera84@192.168.0.77:80/axis-media/media.amp" -codec copy -y
 /tmp/test.mkv
 ffmpeg version 2.1.8 Copyright (c) 2000-2015 the FFmpeg developers
   built on Jul  4 2018 15:34:14 with gcc 6.3.0 (Debian 6.3.0-18+deb9u1)
 20170516
   configuration:
   libavutil      52. 48.101 / 52. 48.101
   libavcodec     55. 39.101 / 55. 39.101
   libavformat    55. 19.104 / 55. 19.104
   libavdevice    55.  5.100 / 55.  5.100
   libavfilter     3. 90.100 /  3. 90.100
   libswscale      2.  5.101 /  2.  5.101
   libswresample   0. 17.104 /  0. 17.104
  matched as AVOption 'debug' with argument '100'.
 Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport'
 with argument 'http'.
 Reading option '-i' ... matched as input file with argument
 'rtsp://root:camera84@192.168.0.77:80/axis-media/media.amp'.
 Reading option '-codec' ... matched as option 'codec' (codec name) with
 argument 'copy'.
 Reading option '-y' ... matched as option 'y' (overwrite output files)
 with argument '1'.
 Reading option '/tmp/test.mkv' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option y (overwrite output files) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input file
 rtsp://root:camera84@192.168.0.77:80/axis-media/media.amp.
 Successfully parsed a group of options.
 Opening an input file: rtsp://root:camera84@192.168.0.77:80/axis-
 media/media.amp.
 rtsp://root:camera84@192.168.0.77:80/axis-media/media.amp: Input/output
 error

 Any ideas?
 Thank you

--
Ticket URL: <https://trac.ffmpeg.org/ticket/7297>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list