用DJI GO推流到SRS,RTMP播放正常,HLS无法播放 #635
Comments
|
开启atc模式,用srs rtmp dump录制一段flv,把日志和文件传上来看看。 |
|
[2016-12-08 10:26:36.416][trace][13946][227] dvr stream wifiwx-85 to file /storage/live_data/live/wifiwx-85.1481163996416.flv |
|
肯定是里面的264的NALU不标准,找时间看看是不是能兼容了。野鸡编码器一般都喜欢送奇奇怪怪的流。 |
|
你这个文件ffmpeg说也是有问题的:
|
|
srs rtmp dump录制的文件(没有修改数据的原始流):https://github.com/ossrs/srs/files/638274/wifiwx-85.1481163996416.flv.zip 推送到SRS:
服务器日志:
大约是在切片的时间点出的日志:
切出来的ts用VLC无法播放,都是绿屏和灰屏。RTMP是能播的。直接VLC播FLV文件也是能播的。 |
|
总感觉这个flv文件中的264不是annexb,是mp4格式的h264封装,会不会出问题 |
|
解析它的SPS/PPS,是第一帧视频发过来的,内容如下:
封装都是对的,能进入到函数
SPS的数据如下:
PPS数据如下:
貌似SPS和PPS是没有啥特殊的地方。解析出来的SPS信息也是对的:
对比FFMPEG的信息:
|
|
第一帧应该是个IDR帧,数据如下:
或者说,里面包含了几个NALU,每个都是size+data的ibmf格式:
几个NALU加起来是
解析出来有4个NALU(sample):
这几个NALU,分别是:
而SRS如果没有IDR,就会不会插入SPS和PPS,导致花屏和报错。 |
|
发送的视频帧数据。 SPS的数据如下:
PPS数据如下:
第一帧:
第二帧:
第三帧:
第四帧:
目前可以确定就是大疆发的数据是NonIDR open gop的数据,一般都是IDR帧开头closed gop的。需要正确的处理这种类型的数据。 |
|
据说最新的FFMPEG可以正确处理这个流:
分析FFMPEG生成的TS,数据如下:
按照FFMPEG处理NonIDR的方式,就可以了(不是插入默认的AUD NALU,不写入SPS和PPS)。 |
|
总结来说:
SRS doc下面Avatar的样片,NALU序列如下:
大疆推的open-gop的序列如下:
|
|
最后把NonIDR和IDR统一起来了,SRS写HLS的策略是:
|
我写的推流地址是rtmp://192.168.1.130:1935/live/livestream 但是显示一直在连接中,请问是什么原因呢? |
用“DJI GO”(大彊无人机的APP)推流到SRS,RTMP播放正常,HLS无法播放,视频全是马赛克。同时测试推流到wowza服务器,wowoza上面生成的hls播放是正常的,请问这是什么原因?
The text was updated successfully, but these errors were encountered: