ошибка публикации RTMP

Denis Shevhenko

New Member
Не могу опубликовать поток rtmp, в логах запись об ошибке.
Поток формирую в c++ с помощью avlib. Возможно что-то не хватает в заголовках в свойствах видеопакета , не могу понять, чего.


04:30:00,646 ERROR ServerHandler - RTMP-pool-22-thread-25 RTMP error {}[id: 0x50fe404c, /185.220.35.51:53178 => /185.220.35.4:1935]
java.lang.IndexOutOfBoundsException: Readable byte limit exceeded: 5
at org.jboss.netty.buffer.AbstractChannelBuffer.readByte(Unknown Source)
at com.flashphoner.media.rtp.D.E.A.B(Unknown Source)
at com.flashphoner.media.rtp.D.E.A.A(Unknown Source)
at com.flashphoner.media.rtp.D.E.D.A(Unknown Source)
at com.flashphoner.sdk.client.StreamingMediaClient.playVideo(Unknown Source)
at com.flashphoner.server.client.handler.wcs4.FlashStreamingHandler.feedVideo(Unknown Source)
at com.flashphoner.server.client.handler.wcs4.FlashStreamingHandler.playVideo(Unknown Source)
at com.flashphoner.server.client.handler.wcs4.FlashStreamingHandler.onVideoPacket(Unknown Source)
at com.flashphoner.server.client.handler.DelegateHandler.onVideoPacket(Unknown Source)
at com.flashphoner.server.rtmfp.client.FlashClient.onVideoPacket(Unknown Source)
at com.flashphoner.server.rtmp.rtmp.server.G.messageReceived(Unknown Source)
at org.jboss.netty.channel.Channels.fireMessageReceived(Unknown Source)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(Unknown Source)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(Unknown Source)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(Unknown Source)
at org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler.handleUpstream(Unknown Source)
at org.jboss.netty.handler.timeout.IdleStateHandler.messageReceived(Unknown Source)
at org.jboss.netty.channel.Channels.fireMessageReceived(Unknown Source)
at org.jboss.netty.channel.Channels.fireMessageReceived(Unknown Source)
at org.jboss.netty.channel.socket.nio.NioWorker.read(Unknown Source)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(Unknown Source)
at org.jboss.netty.channel.socket.nio.DeadlockAwareNioWorker.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
04:30:00,647 ERROR ServerHandler - RTMP-pool-22-thread-25 channel closed: [id: 0x50fe404c, /185.220.35.51:53178 :> /185.220.35.4:1935] CLOSED
------ свойства пекета

[PACKET]
codec_type=video
stream_index=0
pts=83358
pts_time=83.358000
dts=83358
dts_time=83.358000
duration=33
duration_time=0.033000
size=26
pos=11807
flags=__
[/PACKET]

====== свойства потока
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 25.4 KiB
Duration : 1 s 934 ms
Overall bit rate : 108 kb/s
Writing application : Lavf58.29.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L3.1
Format settings : 2 Ref Frames
Format settings, CABAC : No
Format settings, Reference frames : 2 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1 s 934 ms
Bit rate : 99.6 kb/s
Nominal bit rate : 1 572 kb/s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 30.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.004
Stream size : 23.9 KiB (94%)
Writing library : x264 core 155 r2917 0a84d98
 

Denis Shevhenko

New Member
Проблема решена:
в в каждый кейфрем необходимо добавить заголовок:
Place global headers in extradata instead of every keyframe

enc_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
 

Max

Administrator
Staff member
Добрый день.
Если возникают какие-то сомнения в поведении именно сервера, необходимо проверять работоспособность с помощью заведомо работающих инструментов публикации, например ffmpeg или OBS. Если проблема воспроизводится и с ними, нужно собрать логи сервера и предоставить нам через кнопку Report в теме форума.
 
Top