[FFmpeg-trac] #1734(undetermined:new): Problems dumping H264 stream from an Axis camera
FFmpeg
trac at avcodec.org
Fri Sep 14 14:39:52 CEST 2012
#1734: Problems dumping H264 stream from an Axis camera
-------------------------------------+-------------------------------------
Reporter: PaulJBis | Type: defect
Status: new | Priority: normal
Component: | Version: git-
undetermined | master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
I'm trying to dump the H264 stream from an Axis M-1011 camera, and latest
ffmpeg gives me a "av_interleaved_write_frame(): Invalid argument" error.
The stream does work if I play it using ffplay. If I dump the raw stream
with openRTSP (from http://www.live555.com/liveMedia) and then feed it to
ffmpeg, it does work too. It only stops working if I use ffmpeg to receive
directly the stream (so unfortunately I can't provide you with any video
samples).
Using git bisect, I managed to narrow down the revision where the bug
started happening: version 2107009 is the last one that worked, while
3e1cf49 (and subsequent ones) don't work. Following a discussion in the
mailing list, I tried removing "&& has_decode_delay_been_guessed(st)" from
compute_pkt_fields() in libavformat/utils.c, in the current version, and
it started working too.
Below are console outputs, including command lines:
Output of the current version:
{{{
[paulo at webserver ffmpeg]$ ./ffmpeg -v 9 -loglevel 99 -rtsp_transport tcp
-i rtsp://root:root@192.168.1.131:554/axis-
media/media.amp?streamprofile=Media?tcp -vcodec copy -acodec copy -t 4
../axis.mp4
ffmpeg version N-44400-g2de8877 Copyright (c) 2000-2012 the FFmpeg
developers
built on Sep 12 2012 22:25:21 with gcc 4.1.2 (GCC) 20080704 (Red Hat
4.1.2-50)
configuration: --enable-encoder=libx264 --enable-libx264 --enable-
runtime-cpudetect --enable-libmp3lame --enable-gpl --extra-
cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
libavutil 51. 72.100 / 51. 72.100
libavcodec 54. 55.100 / 54. 55.100
libavformat 54. 26.101 / 54. 26.101
libavdevice 54. 2.100 / 54. 2.100
libavfilter 3. 16.103 / 3. 16.103
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
[rtsp @ 0xa6d85e0] SDP:
v=0
o=- 1288182959680264 1288182959680264 IN IP4 192.168.1.131
s=Media Presentation
e=NONE
c=IN IP4 0.0.0.0
b=AS:50000
t=0 0
a=control:rtsp://192.168.1.131:554/axis-
media/media.amp?streamprofile=Media?tcp
a=range:npt=0.000000-
m=video 0 RTP/AVP 96
b=AS:50000
a=framerate:25.0
a=transform:1,0,0;0,1,0;0,0,1
a=control:rtsp://192.168.1.131:554/axis-
media/media.amp/trackID=1?streamprofile=Media?tcp
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; profile-level-id=420029; sprop-parameter-
sets=Z0IAKeNQFAe2AtwEBAaQeJEV,aM48gA==
[rtsp @ 0xa6d85e0] video codec set to: h264
[NULL @ 0xa6e07c0] RTP Packetization Mode: 1
[NULL @ 0xa6e07c0] RTP Profile IDC: 42 Profile IOP: 0 Level: 29
[NULL @ 0xa6e07c0] Extradata set to 0xa6e0c40 (size: 30)!
[rtsp @ 0xa6d85e0] hello state=0
[rtsp @ 0xa6d85e0] All info found
rfps: 29.500000 0.016870
rfps: 29.583333 0.012762
rfps: 29.666667 0.009299
rfps: 29.750000 0.006483
rfps: 29.833333 0.004314
Last message repeated 1 times
rfps: 29.916667 0.002791
Last message repeated 1 times
rfps: 30.000000 0.001914
Last message repeated 1 times
rfps: 30.083333 0.001684
rfps: 30.166667 0.002100
Last message repeated 1 times
rfps: 30.250000 0.003163
Last message repeated 1 times
rfps: 30.333333 0.004872
Last message repeated 1 times
rfps: 30.416667 0.007228
rfps: 30.500000 0.010230
rfps: 30.583333 0.013878
rfps: 30.666667 0.018173
rfps: 59.666667 0.017255
rfps: 59.750000 0.013886
rfps: 59.833333 0.011163
rfps: 59.916667 0.009087
Last message repeated 1 times
rfps: 60.000000 0.007657
Last message repeated 1 times
rfps: 29.970030 0.002155
Last message repeated 1 times
rfps: 59.940060 0.008620
Last message repeated 1 times
[rtsp @ 0xa6d85e0] Estimating duration from bitrate, this may be
inaccurate
Input #0, rtsp, from 'rtsp://root:root@192.168.1.131:554/axis-
media/media.amp?streamprofile=Media?tcp':
Metadata:
title : Media Presentation
Duration: N/A, start: 0.099867, bitrate: N/A
Stream #0:0, 28, 1/90000: Video: h264 (Baseline), yuvj420p, 640x480
[SAR 1:1 DAR 4:3], 1/180000, 30.08 tbr, 90k tbn, 180k tbc
Output #0, mp4, to '../axis.mp4':
Metadata:
title : Media Presentation
encoder : Lavf54.26.101
Stream #0:0, 0, 1/90000: Video: h264 ([33][0][0][0] / 0x0021),
yuvj420p, 640x480 [SAR 1:1 DAR 4:3], 1/90000, q=2-31, 90k tbn, 90k tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0xa8125e0] pts (0) < dts (1) in stream 0
av_interleaved_write_frame(): Invalid argument
}}}
Output of version 2107009 (last one that worked):
{{{
[paulo at webserver ffmpeg]$ ./ffmpeg -v 9 -loglevel 99 -rtsp_transport tcp
-i rtsp://root:root@192.168.1.131:554/axis-
media/media.amp?streamprofile=Media?tcp -vcodec copy -acodec copy -t 4
../axis.mp4
ffmpeg version N-43195-g2107009 Copyright (c) 2000-2012 the FFmpeg
developers
built on Sep 14 2012 14:26:23 with gcc 4.1.2 (GCC) 20080704 (Red Hat
4.1.2-50)
configuration: --enable-encoder=libx264 --enable-libx264 --enable-
runtime-cpudetect --enable-libmp3lame --enable-gpl --extra-
cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
libavutil 51. 66.100 / 51. 66.100
libavcodec 54. 48.100 / 54. 48.100
libavformat 54. 22.100 / 54. 22.100
libavdevice 54. 2.100 / 54. 2.100
libavfilter 3. 5.102 / 3. 5.102
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
[rtsp @ 0xa0df5c0] SDP:
v=0
o=- 1288183655668567 1288183655668567 IN IP4 192.168.1.131
s=Media Presentation
e=NONE
c=IN IP4 0.0.0.0
b=AS:50000
t=0 0
a=control:rtsp://192.168.1.131:554/axis-
media/media.amp?streamprofile=Media?tcp
a=range:npt=0.000000-
m=video 0 RTP/AVP 96
b=AS:50000
a=framerate:25.0
a=transform:1,0,0;0,1,0;0,0,1
a=control:rtsp://192.168.1.131:554/axis-
media/media.amp/trackID=1?streamprofile=Media?tcp
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; profile-level-id=420029; sprop-parameter-
sets=Z0IAKeNQFAe2AtwEBAaQeJEV,aM48gA==
[rtsp @ 0xa0df5c0] video codec set to: h264
[NULL @ 0xa0e7760] RTP Packetization Mode: 1
[NULL @ 0xa0e7760] RTP Profile IDC: 42 Profile IOP: 0 Level: 29
[NULL @ 0xa0e7760] Extradata set to 0xa0e7c40 (size: 30)!
[rtsp @ 0xa0df5c0] hello state=0
[rtsp @ 0xa0df5c0] All info found
rfps: 29.666667 0.017957
rfps: 29.750000 0.011154
Last message repeated 1 times
rfps: 29.833333 0.006086
Last message repeated 1 times
rfps: 29.916667 0.002752
Last message repeated 1 times
rfps: 30.000000 0.001154
rfps: 30.083333 0.001291
rfps: 30.166667 0.003162
Last message repeated 1 times
rfps: 30.250000 0.006769
Last message repeated 1 times
rfps: 30.333333 0.012110
Last message repeated 1 times
rfps: 30.416667 0.019187
rfps: 59.750000 0.016809
rfps: 59.833333 0.011010
Last message repeated 1 times
rfps: 59.916667 0.006945
Last message repeated 1 times
rfps: 60.000000 0.004616
rfps: 29.970030 0.001529
Last message repeated 1 times
rfps: 59.940060 0.006116
Last message repeated 1 times
[rtsp @ 0xa0df5c0] Estimating duration from bitrate, this may be
inaccurate
Input #0, rtsp, from 'rtsp://root:root@192.168.1.131:554/axis-
media/media.amp?streamprofile=Media?tcp':
Metadata:
title : Media Presentation
Duration: N/A, start: 0.099856, bitrate: N/A
Stream #0:0, 22, 1/90000: Video: h264 (Baseline), yuvj420p, 640x480
[SAR 1:1 DAR 4:3], 1/180000, 30 tbr, 90k tbn, 180k tbc
Output #0, mp4, to '../axis.mp4':
Metadata:
title : Media Presentation
encoder : Lavf54.22.100
Stream #0:0, 0, 1/90000: Video: h264 ([33][0][0][0] / 0x0021),
yuvj420p, 640x480 [SAR 1:1 DAR 4:3], 1/90000, q=2-31, 90k tbn, 90k tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame= 38 fps=0.0 q=-1.0 size= 347kB time=00:00:01.82
bitrate=1554.8kbits/
frame= 50 fps= 47 q=-1.0 size= 434kB time=00:00:02.36
bitrate=1507.2kbits/
frame= 62 fps= 40 q=-1.0 size= 520kB time=00:00:02.85
bitrate=1490.0kbits/
frame= 75 fps= 36 q=-1.0 size= 652kB time=00:00:03.39
bitrate=1574.2kbits/
frame= 88 fps= 34 q=-1.0 size= 744kB time=00:00:03.89
bitrate=1567.0kbits/
No more output streams to write to, finishing.
frame= 91 fps= 32 q=-1.0 Lsize= 767kB time=00:00:03.98
bitrate=1575.8kbits/s
video:766kB audio:0kB subtitle:0 global headers:0kB muxing overhead
0.236722%
}}}
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1734>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list