[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