From d27bf5fee9693168a8ff347c557e8073a648ddbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E6=A5=9A?= <771730766@qq.com> Date: Sun, 28 Jun 2020 21:30:05 +0800 Subject: [PATCH] =?UTF-8?q?Created=20RTMP=E6=92=AD=E6=94=BE=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E6=80=A7=E9=97=AE=E9=A2=98=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RTMP播放兼容性问题.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 RTMP播放兼容性问题.md diff --git a/RTMP播放兼容性问题.md b/RTMP播放兼容性问题.md new file mode 100644 index 0000000..7fd65a8 --- /dev/null +++ b/RTMP播放兼容性问题.md @@ -0,0 +1,19 @@ +一般来说 rtmp的规范是 先发送metadata ,然后发送config帧,然后发送关键帧 然后是普通帧 + +config帧收到后就能初始化解码器了 + +但是你这个流不太一样,并没有收到视频的config帧就收到其他帧了 + +这个时候视频Track并没创建和初始化 + +初步怀疑是nginx的rtmp服务器兼容性不好 + +zlm的推流器会严格按照先发送metadata ,然后发送config帧,然后发送关键帧 然后是普通帧的流程来做 + +也会缓存所有的config帧 + +ffplay能播放成功是因为它是根据数据量和时间来判断播放成功 + +只要数据量达到一定量或者时间达到一定时间 就会触发播放成功的事件 + +这样做的好处是 播放成功率高 坏处是打开视频时间长 \ No newline at end of file