Hi!
Writing RTMP
Streaming Server for streaming AVC+AAC video. And it works fine with rtmpdump
. But I can't force it to work in flowplayer and other flash video players.
The message sequence after handshake is similar to FMS / RED5 / erlyvideo / haxevideo servers: I've tried a lot of variations.
From Chrome debug console I can see, what all negotiating messages passed to the flowplayer. The last one is onMetaData. And after this the working sample (rtmp://flash.tvwmedia.net/LiveVideo//Live300) gets NetStream.Buffer.Full
. And streaming from my server don't get it.
I'm starting with AVC Header message, containing sps/pps. After it first AVC picture passed. After - AAC header and AAC sample. And then AVC/AAC samples. This dumped OK by rtmpdump
- I have working flv on exit. But flowplayer and others does not work.
- What can be the problem?
- Is there any additional requirements for streams?
- Is it possible that broken h264 stream cause flashplayer to stop playing? Is it possible to obtain system messages from flash player, which say about it?
Hope, You can help me :) I'm fighting with this problem over 2 weeks, and now just don't know any variants I can try.
Here is debug log + flv from rtmpdump
. It contains negotiating messages and some first samples of media.
Update:
I've fixed one bug: wrong chunk stram ID used for "system" messages (e.g. SetChunkSize
). But it's still don't playing.
Here is another log, almost the same as wowza produces. And wowza/red5 logs too (to compare).
I've checked the following things, which different in RTMP servers:
- Different ChunkStreamIDs (for non-system streams)
- Different StreamIDs (on
createStream
) - 128b ank 4Kb chunk sizes
- Unpacked/Packed chunk headers (in prev. log there are unpacked, in new - packed)
- Different answers on
connect
call (from many servers) - Using
57 00
,57 01
video packets (video info/command frame) - Adding 09 (Access Unit Delimiter) NALU before each picture
- Different order of audio/video DCR/packets
- Audio only/video only
But tuning all that didn't let my server to work anyway :)
Any ideas how to solve this?
Update:
I've made a log through Flazr proxy as Peter suggested. Results are the same. And I can't find the solution: both logs looks good. Maybe I just don't see something easy...
Thank you!