[FFmpeg-trac] #5605(undetermined:new): read rtmp stream occur Packet mismatch

FFmpeg trac at avcodec.org
Wed Jun 1 15:25:40 CEST 2016


#5605: read rtmp stream occur Packet mismatch
-------------------------------------+-------------------------------------
             Reporter:  heibaijun    |                     Type:  defect
               Status:  new          |                 Priority:  critical
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  Packet       |               Blocked By:
  mismatch                           |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 VERISON:
   built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-16)
   configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64
 --mandir=/usr/share/man --disable-ffserver --disable-ffplay --enable-
 shared --disable-static --enable-runtime-cpudetect --enable-gpl --enable-
 version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-
 bzlib --enable-libfreetype --disable-debug --enable-libfaac --enable-
 libx264 --enable-libfdk-aac --enable-nonfree --disable-stripping --enable-
 pic --extra-libs=-lstdc++
   libavutil      55. 17.103 / 55. 17.103
   libavcodec     57. 24.102 / 57. 24.102
   libavformat    57. 25.100 / 57. 25.100
   libavdevice    57.  0.101 / 57.  0.101
   libavfilter     6. 31.100 /  6. 31.100
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.101 /  2.  0.101
   libpostproc    54.  0.100 / 54.  0.100

 OS:
     CentOS release 6.6 (Final)  2.6.32-504.el6.x86_64
 CMD:
     ffmpeg -re -i rtmp://127.0.0.1/myapp/test -c:v copy -c:a copy -f flv
 rtmp://127.0.0.1:19357/world/test111
 LOG:
     [flv @ 0x34db420] type:8, size:194, last:-1, dts:800 pos:5786
     [flv @ 0x34db420] 1 AF 0
     old_flv_size=0 type=8 size=195 ts=832 total=206
     [flv @ 0x34db420] type:8, size:195, last:-1, dts:832 pos:5995
     [flv @ 0x34db420] 1 AF 0
     old_flv_size=0 type=8 size=204 ts=864 total=215  -----> function
 append_flv_data print
     [flv @ 0x34db420] type:8, size:204, last:-1, dts:864 pos:6205
     [flv @ 0x34db420] 1 AF 0
     [rtmp @ 0x34dbce0] ff_rtmp_packet_read  EIO
     [AVIOContext @ 0x34dd280] read avio failed  ret = 0 start=0x34e67ab
 end=0x34e67ab
         Last message repeated 7 times                           ---->
 function avio_r8  return 0 print
     [flv @ 0x34db420] type:0, size:0, last:-1, dts:0 pos:6416
     old_flv_size=0 type=9 size=43 ts=854 total=54     ----->   function
 avio_feof->fill_buffer->append_flv_data
     [flv @ 0x34db420] size =0  FFERROR_REDO           ----->   size = 0
 goto leave
     [flv @ 0x34db420] Packet mismatch 721421142 11
     old_flv_size=0 type=9 size=39125 ts=885 total=39136
     old_flv_size=0 type=8 size=192 ts=896 total=203
     old_flv_size=0 type=8 size=203 ts=928 total=214  ----->function
 append_flv_data print right
     [flv @ 0x34db420] type:0, size:51968, last:721421142, dts:237568
 pos:45830    ------>size is invalid
     [flv @ 0x34db420] Skipping flv packet: type 0, size 51968, flags 0.
     old_flv_size=0 type=9 size=2019 ts=935 total=2030
     old_flv_size=0 type=8 size=195 ts=960 total=206
     old_flv_size=0 type=9 size=3186 ts=989 total=3197
     old_flv_size=0 type=8 size=196 ts=992 total=207

 SUMMARY:
     In function flv_read_packet, before Packet mismatch happen, rtmp read
 return EIO, avio_r8 return 0, so var type, size and dts equal zero,
     at this time avio_feof read next rtmp packet, after function goto tag
 leave for size equal zero,  var last equal first four byte
     after Packet mismatch happen, rtmp read packet is right
     so rtmp level is right and flv level is wrong
     avio_r8 and avio_rb32 can not return failed state
     because flv packet is wrong, can not read right size

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


More information about the FFmpeg-trac mailing list