TI中文支持网
TI专业的中文技术问题搜集分享网站

DVRRDK4.0.0.3 H264编码 rtmp播放卡顿问题

各位好!我使用的开发环境是DM8168+DVRRDK_04.00.00.03的环境。现在遇到的问题是:

dm8168板卡编码出264视频流,
1 经过librtmp打包发送rtmp流,server使用nginx/1.9.2和adobe fms 4.0测试现象相同,播放器采用adobe flash player 播放rtmp流,出现卡顿现象
2 然后采用ffmpeg 2.8版本程序命令推流,播放卡顿;
3 通过ffmpeg命令保存成文件flv,adobe flash player 播放卡顿;
4 保存后的flv文件,通过ffmpeg命令推流,rtmpdump接收网络流保存成文件flv后,对比文件并未丢帧。
测试发现264文件中带有idr帧时,遇到idr时就出现卡顿;如果设置intra frame interval = 0,即只是在最开始有idr帧时,则播放正常,当intra frame interval = 1时,即只编码idr帧,则视频流因为没有P帧图像质量严重下降
264视频帧顺序为0001 sps 0001 pps 0001 sei 0001 idr
附件h264_nalu.txt
    NALU size:   16065NALU type0x01 nalutypebyte:0x21 in video frame number 089
    NALU size:      35NALU type0x07 nalutypebyte:0x27 in video frame number 090
    NALU size:       5NALU type0x08 nalutypebyte:0x28 in video frame number 090
    NALU size:      21NALU type0x06 nalutypebyte:0x06 in video frame number 090
    NALU size:   33959NALU type0x05 nalutypebyte:0x25 in video frame number 090
    NALU size:   15800NALU type0x01 nalutypebyte:0x21 in video frame number 091

红色部分即:nalu size 为5,帧类型为pps,帧类型完整字节0x28 位于第90视频帧数据中

编码参数设置:

/* To set IDR frame periodically instead of I Frame */
    staticParams->IDRFrameInterval = 1;
也就是每一个I帧都是idr

录制的h264文件直接使用Elecard StreamEye Tools软件播放,也是遇到idr就卡顿
录制的264 流文件链接如下:
http://yunpan.cn/cFBeHApYPu4AI 
(提取码:7248)

问题和该链接类似,编码参数对照调整后,仍然有卡顿现象。
http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/75631.aspx

link连接方式,分辨率为1080P30,码率4000*1000 bps

cap->nsf->enc或者cap->dei->enc

请问如何解决?谢谢

Ternence_Hsu:

你好;

      我刚才有测试一下你网盘中的视频流,用ffmpeg直接推送到rtmp 视频流到nginx 上面,视频播放是流畅的;

     其实我怀疑不是你视频流的问题,是你rtmp的播放本来是有问题的;

     你可以做一个这样的测试吗?换一个正常的h264的视频流(非8168编码的),测试rtmp 直播/点播 ,看播放流畅吗?

Ternence_Hsu:

关于 录制的h264文件直接使用Elecard StreamEye Tools软件播放,也是遇到idr就卡顿

这个和视频流有关,单帧的大小,我之前也遇到过,在ele的分析界面上面播放正常的码流,遇到比较大的I帧,也是不流畅的,我想这个并不能说明这个视频流有问题;

Jason_Zhang:

回复 Ternence_Hsu:

我这边用vlc和flowerplayer播放好像比较正常,但是用adobe flash player 播放就卡顿 ,请问你那边用的什么播放器测试的?

另外直接使用Elecard StreamEye Tools软件播放,别人的264是不卡顿的 我的板子编的是卡顿的 遇到idr就卡顿,也就是现在从两个角度来分析

1 假定编码输出的流是正常的,播放器vlc播放正常,adobe flash player播放卡顿,是说明flash player播放器有问题?因为一般vlc本身兼容性就比较强,比如录制的mp4中264nalu有问题的话,其他播放器比如qq影音,暴风影音不能正常播放,但是vlc能播放,怎么能够区分出播放器的区别,来说明这个问题呢

2假定adobe官方的flash player没有问题,那也就是说是编码参数导致的编码数据idr部分不正常,这个怎么来调整编码参数,使得idr帧小一些,避免掉这个遇到idr就卡顿的问题?

请帮忙分析一下,谢谢

Ternence_Hsu:

回复 Jason_Zhang:

我这边用的VLC播放测试正常,video-js 播放也是正常;

我感觉码流数据流是正常的,可能是adobe 的兼容性问题,或者是播放器在网络接收等方面的问题;

这方面你可以多做一些测试,或许可以找到规律或者解决办法。

赞(0)
未经允许不得转载:TI中文支持网 » DVRRDK4.0.0.3 H264编码 rtmp播放卡顿问题
分享到: 更多 (0)