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

FFmpeg trac at avcodec.org
Wed Jun 1 15:11:42 CEST 2016


#5604: 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,
     then function goto tag leave, at this time avio_rb32 read next packet,
 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/5604>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list