[FFmpeg-trac] #640(FFmpeg:new): Segmentation fault when streaming to ffserver

FFmpeg trac at avcodec.org
Fri Nov 11 12:32:32 CET 2011


#640: Segmentation fault when streaming to ffserver
-------------------------------------+-------------------------------------
             Reporter:  apolychrono  |                    Owner:  michael
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:  FFmpeg
              Version:  git-master   |               Resolution:
             Keywords:  rtp flv      |               Blocked By:
  ffserver                           |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------

Comment (by apolychrono):

 Sorry for the incomplete report. So here i think is all that you need.

 Steps to reproduce it:

  1) RTP streaming of a YUV420p file:
 {{{
 ffmpeg  -re -s 352x288 -f rawvideo -pix_fmt yuv420p  -r 10 -i
 sample_352x288 at 10_YUV420p.yuv -an  -vcodec libx264  -preset fast -profile
 baseline -threads 0 -r 10 -s 352x288 -b:v 200k -flags global_header  -f
 rtp rtp://127.0.0.1:9999 ;
 }}}


  2) Create the feed for ffserver:
 {{{
 ffmpeg -i stream.sdp  -vcodec copy http://127.0.0.1:8090/feed1.ffm
 }}}


  3) Start the ffserver: ffserver -d -f ffserver.conf


  The ffserver.conf is :

 {{{
  Port 8090
  BindAddress 0.0.0.0
  MaxClients 10
  MaxBandwidth 40000
  NoDaemon

 <Feed feed1.ffm>
    File /tmp/feed1.ffm
    FileMaxSize 15M
    ACL allow localhost
    ACL allow 192.168.0.0 192.168.255.255
    ACL allow 10.8.13.202 10.8.13.255
 </Feed>

 <Stream video1.flv>
     Feed feed1.ffm
     Format flv
     AVOptionVideo flags +global_header
 #    AVOptionAudio flags +global_header
 #    AudioCodec libmp3lame
 #    AudioBitRate 32
 #    AudioChannels 1
 #    AudioSampleRate 11025
     VideoCodec libx264
     VideoSize 352x288
     VideoBitRate 200K
     VideoFrameRate 10
     AVOptionVideo threads 4
     AVOptionVideo qmin 10
     AVOptionVideo qmax 51
     AVOptionVideo qdiff 4
     AVOptionVideo g 250
     AVOptionVideo keyint_min 25
     AVOptionVideo sc_threshold 40
     AVOptionVideo coder 0
     AVOptionVideo bf 0
     AVOptionVideo b_strategy 1
     AVOptionVideo refs 1
     AVOptionVideo flags +loop
     AVOptionVideo flags2 -bpyramid-wpred-dct8x8+mixed_refs+fastpskip
     AVOptionVideo i_qfactor 0.71
     AVOptionVideo qcomp 0.6
     AVOptionVideo partitions -parti8x8-partp4x4+parti4x4+partp8x8+partb8x8
     AVOptionVideo me_method hex
     AVOptionVideo me_range 16
     AVOptionVideo subq 6
     AVOptionVideo trellis 0
     AVOptionVideo wpredp 0
     VideoGopSize 50
     Preroll 4
     StartSendOnKey
 </Stream>

 }}}

 '''''BUT the execution order of the above commands is: 3,2,1'''''

 {{{

 (gdb) r -i 352x288 at 10_preset_fast.sdp -vcodec copy
 http://127.0.0.1:8090/feed1.ffm
 Starting program: /home/apolychrono/Software/ffmpeg/ffmpeg_g -i
 352x288 at 10_preset_fast.sdp -vcodec copy http://127.0.0.1:8090/feed1.ffm
 [Thread debugging using libthread_db enabled]
 ffmpeg version N-34329-g26b6455, Copyright (c) 2000-2011 the FFmpeg
 developers
   built on Nov  7 2011 10:38:35 with gcc 4.4.3
   configuration: --enable-static --enable-gpl --enable-nonfree --enable-
 postproc --enable-libfaac --enable-libx264
   libavutil    51. 22. 0 / 51. 22. 0
   libavcodec   53. 26. 0 / 53. 26. 0
   libavformat  53. 18. 0 / 53. 18. 0
   libavdevice  53.  4. 0 / 53.  4. 0
   libavfilter   2. 45. 3 /  2. 45. 3
   libswscale    2.  1. 0 /  2.  1. 0
   libpostproc  51.  2. 0 / 51.  2. 0
 [sdp @ 0x15d1760] Estimating duration from bitrate, this may be inaccurate
 Input #0, sdp, from '352x288 at 10_preset_fast.sdp':
   Metadata:
     title           : No Name
   Duration: N/A, start: -3.391000, bitrate: N/A
     Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 352x288, 10
 fps, 10 tbr, 90k tbn, 20 tbc
 [mp2 @ 0x15cfca0] codec type or id mismatches
 Output #0, ffm, to 'http://127.0.0.1:8090/feed1.ffm':
   Metadata:
     title           : No Name
     Stream #0:0: Audio: adpcm_swf, 22050 Hz, 1 channels, s16, 88 kb/s
     Stream #0:1: Video: h264, yuv420p, 352x288, q=10-51, 1000k tbn, 10 tbc
 Stream mapping:
   Stream #0.0 -> #0.0
 Program received signal SIGSEGV, Segmentation fault.
 transcode_init (output_files=<value optimized out>, nb_output_files=1,
 input_files=<value optimized out>, nb_input_files=<value optimized out>)
 at ffmpeg.c:2377
 2377                av_log(NULL, AV_LOG_INFO, " [sync #%d.%d]",
 (gdb) bt
 #0  transcode_init (output_files=<value optimized out>, nb_output_files=1,
 input_files=<value optimized out>, nb_input_files=<value optimized out>)
 at ffmpeg.c:2377
 #1  0x00000000004415aa in transcode (argc=<value optimized out>,
 argv=0x7fffffffe0f8) at ffmpeg.c:2419
 #2  main (argc=<value optimized out>, argv=0x7fffffffe0f8) at
 ffmpeg.c:4506
 (gdb) disass $pc-32,$pc+32
 Dump of assembler code from 0x440fc3 to 0x441003:
    0x0000000000440fc3 <transcode_init+5603>:    stc
    0x0000000000440fc4 <transcode_init+5604>:    jrcxz  0x441034
 <transcode_init+5716>
    0x0000000000440fc6 <transcode_init+5606>:    add    %cl,0x63(%rax)
    0x0000000000440fc9 <transcode_init+5609>:    push   %rbx
    0x0000000000440fca <transcode_init+5610>:    or     %cl,-0x75(%rax)
    0x0000000000440fcd <transcode_init+5613>:    rex.XB and %cl,-0x73(%r8)
    0x0000000000440fd1 <transcode_init+5617>:    adc    $0x92,%al
    0x0000000000440fd3 <transcode_init+5619>:    shl    $0x4,%rdx
    0x0000000000440fd7 <transcode_init+5623>:    add    0xbd5292(%rip),%rdx
 # 0x1016270 <input_streams>
    0x0000000000440fde <transcode_init+5630>:    cmp    %rdx,%rax
    0x0000000000440fe1 <transcode_init+5633>:    je     0x440fff
 <transcode_init+5663>
 => 0x0000000000440fe3 <transcode_init+5635>:    mov    0x8(%rax),%rdx
    0x0000000000440fe7 <transcode_init+5639>:    mov    (%rax),%ecx
    0x0000000000440fe9 <transcode_init+5641>:    mov    $0x20,%esi
    0x0000000000440fee <transcode_init+5646>:    xor    %edi,%edi
    0x0000000000440ff0 <transcode_init+5648>:    xor    %eax,%eax
    0x0000000000440ff2 <transcode_init+5650>:    mov    (%rdx),%r8d
    0x0000000000440ff5 <transcode_init+5653>:    mov    $0xc2c86c,%edx
    0x0000000000440ffa <transcode_init+5658>:    callq  0xb2f3c0 <av_log>
    0x0000000000440fff <transcode_init+5663>:    mov    0x264(%rbx),%r10d
 End of assembler dump.
 (gdb) info all-registers
 rax            0x0      0
 rbx            0x15d0b70        22874992
 rcx            0x7ffff6f87500   140737336866048
 rdx            0x15d8480        22905984
 rsi            0x4      4
 rdi            0x7fffffffaee0   140737488334560
 rbp            0x0      0x0
 rsp            0x7fffffffbc10   0x7fffffffbc10
 r8             0x7ffff7fd5700   140737353963264
 r9             0x7ffff7fd5700   140737353963264
 r10            0x14e1ec0        21896896
 r11            0x246    582
 r12            0x0      0
 r13            0xffffffea       4294967274
 r14            0x1      1
 r15            0x1      1
 rip            0x440fe3 0x440fe3 <transcode_init+5635>
 eflags         0x10283  [ CF SF IF RF ]
 cs             0x33     51
 ss             0x2b     43
 ds             0x0      0
 es             0x0      0
 fs             0x0      0
 gs             0x0      0
 st0            -nan(0x00000003c)        (raw 0xffff000000000000003c)
 st1            -nan(0x000000004)        (raw 0xffff0000000000000004)
 st2            -inf     (raw 0xffff0000000000000000)
 st3            -nan(0xa000000000000000) (raw 0xffffa000000000000000)
 st4            -inf     (raw 0xffff0000000000000000)
 st5            -nan(0x606060606060606)  (raw 0xffff0606060606060606)
 st6            -nan(0xa000000000000000) (raw 0xffffa000000000000000)
 st7            -inf     (raw 0xffff0000000000000000)
 fctrl          0x37f    895
 fstat          0x0      0
 ftag           0xffff   65535
 fiseg          0x0      0
 fioff          0x0      0
 foseg          0x0      0
 fooff          0x0      0
 fop            0x0      0
 xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
 uint128 = 0x00000000000000000000000000000000}
 xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x25 <repeats 16 times>}, v8_int16 = {0x2525, 0x2525, 0x2525,
 0x2525, 0x2525, 0x2525, 0x2525, 0x2525}, v4_int32 = {0x25252525,
 0x25252525, 0x25252525, 0x25252525}, v2_int64 = {
     0x2525252525252525, 0x2525252525252525}, uint128 =
 0x25252525252525252525252525252525}
 xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
 uint128 = 0x00000000000000000000000000000000}
 xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double =
 {0x8000000000000000, 0x0}, v16_int8 = {0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0,
 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0xff, 0x0,
 0xff00, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xff0000,
     0xff000000, 0x0, 0x0}, v2_int64 = {0xff00000000ff0000, 0x0}, uint128 =
 0x0000000000000000ff00000000ff0000}
 xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x20, 0x31, 0x0,
 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x2072, 0x6170, 0x6172, 0x206d,
 0x31, 0x0, 0x0, 0x0}, v4_int32 = {0x61702072,
     0x206d6172, 0x31, 0x0}, v2_int64 = {0x206d617261702072, 0x31}, uint128
 = 0x0000000000000031206d617261702072}
 xmm5           {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x0, 0x0, 0x0, 0xe0, 0x95, 0x9c, 0xe7, 0x3f, 0x0, 0x0, 0x0,
 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0xe000, 0x9c95, 0x3fe7, 0x0,
 0x0, 0x0, 0x0}, v4_int32 = {0xe0000000, 0x3fe79c95,
     0x0, 0x0}, v2_int64 = {0x3fe79c95e0000000, 0x0}, uint128 =
 0x00000000000000003fe79c95e0000000}
 xmm6           {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x1, 0x0},
 v16_int8 = {0x6d, 0x7d, 0xbf, 0xbb, 0x27, 0xaf, 0xf5, 0x3f, 0x0, 0x0, 0x0,
 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x7d6d, 0xbbbf, 0xaf27, 0x3ff5, 0x0,
 0x0, 0x0, 0x0}, v4_int32 = {0xbbbf7d6d,
     0x3ff5af27, 0x0, 0x0}, v2_int64 = {0x3ff5af27bbbf7d6d, 0x0}, uint128 =
 0x00000000000000003ff5af27bbbf7d6d}
 xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x68, 0xc8, 0xbc, 0x3b, 0x0, 0x0, 0x0,
 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0xc868, 0x3bbc, 0x0, 0x0,
 0x0, 0x0}, v4_int32 = {0x0, 0x3bbcc868, 0x0, 0x0},
   v2_int64 = {0x3bbcc86800000000, 0x0}, uint128 =
 0x00000000000000003bbcc86800000000}
 xmm8           {v4_float = {0x0, 0xfffffffd, 0x0, 0x0}, v2_double =
 {0xffffffffffffffd2, 0x0}, v16_int8 = {0xe0, 0xe6, 0x35, 0x67, 0x9e, 0x6,
 0x47, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xe6e0,
 0x6735, 0x69e, 0xc047, 0x0, 0x0, 0x0, 0x0},
   v4_int32 = {0x6735e6e0, 0xc047069e, 0x0, 0x0}, v2_int64 =
 {0xc047069e6735e6e0, 0x0}, uint128 = 0x0000000000000000c047069e6735e6e0}
 xmm9           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
 uint128 = 0x00000000000000000000000000000000}
 xmm10          {v4_float = {0x0, 0xffffffff, 0x0, 0x0}, v2_double =
 {0xffffffffffffffff, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
 0xbf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0,
 0xbff0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0,
     0xbff00000, 0x0, 0x0}, v2_int64 = {0xbff0000000000000, 0x0}, uint128 =
 0x0000000000000000bff0000000000000}
 xmm11          {v4_float = {0x9689a800, 0x0, 0x0, 0x0}, v2_double = {0x0,
 0x0}, v16_int8 = {0x6a, 0xa2, 0x65, 0x50, 0xf2, 0xea, 0x8f, 0xbd, 0x0,
 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xa26a, 0x5065, 0xeaf2,
 0xbd8f, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x5065a26a,
     0xbd8feaf2, 0x0, 0x0}, v2_int64 = {0xbd8feaf25065a26a, 0x0}, uint128 =
 0x0000000000000000bd8feaf25065a26a}
 xmm12          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x29, 0xf2, 0x88, 0x6c, 0xa6, 0x49, 0xde, 0x3e, 0x0, 0x0, 0x0,
 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xf229, 0x6c88, 0x49a6, 0x3ede, 0x0,
 0x0, 0x0, 0x0}, v4_int32 = {0x6c88f229,
     0x3ede49a6, 0x0, 0x0}, v2_int64 = {0x3ede49a66c88f229, 0x0}, uint128 =
 0x00000000000000003ede49a66c88f229}
 ---Type <return> to continue, or q <return> to quit---
 xmm13          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0xb3, 0x12, 0x58, 0x17, 0x64, 0x46, 0xe6, 0x3b, 0x0, 0x0, 0x0,
 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x12b3, 0x1758, 0x4664, 0x3be6, 0x0,
 0x0, 0x0, 0x0}, v4_int32 = {0x175812b3,
     0x3be64664, 0x0, 0x0}, v2_int64 = {0x3be64664175812b3, 0x0}, uint128 =
 0x00000000000000003be64664175812b3}
 xmm14          {v4_float = {0x0, 0x3, 0x0, 0x0}, v2_double = {0x2d, 0x0},
 v16_int8 = {0xc0, 0x9, 0xf2, 0x16, 0xb5, 0xdf, 0x46, 0x40, 0x0, 0x0, 0x0,
 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x9c0, 0x16f2, 0xdfb5, 0x4046, 0x0,
 0x0, 0x0, 0x0}, v4_int32 = {0x16f209c0,
     0x4046dfb5, 0x0, 0x0}, v2_int64 = {0x4046dfb516f209c0, 0x0}, uint128 =
 0x00000000000000004046dfb516f209c0}
 xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x1 <repeats 16 times>}, v8_int16 = {0x101, 0x101, 0x101,
 0x101, 0x101, 0x101, 0x101, 0x101}, v4_int32 = {0x1010101, 0x1010101,
 0x1010101, 0x1010101}, v2_int64 = {0x101010101010101,
     0x101010101010101}, uint128 = 0x01010101010101010101010101010101}
 mxcsr          0x1fb2   [ DE UE PE IM DM ZM OM UM PM ]
 (gdb)
 }}}

 thanks

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/640#comment:2>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list