This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

使用DM365做H.264播放器的问题

项目使用DM365做播放器,接收从无线环境传输过来的H.264编码数据流(编码端也是dm365),

数据流以帧为单位传输。基于decocer demo基础做了修改,现在可以播放图像,但存在两大问题:

1) decoder 在图像开始译码播放前,需要向InBuf中填充大量帧数据,因此造成播放画面的很大延迟。

     请问如何可以控制译码器简单的按帧为单位,每输入一帧数据,随后就对该帧译码,尽量减少大量

    播放缓冲造成的画面延迟?

 

2) 但使用大缓冲保持输入的帧数据时,但数据量减少到某个不确定的值,但其实缓冲中还是有很多数据,

此时decoder有时会不明原因的停止工作,有时提示fatal error后停止。请问哪些情况会导致播放器停止?

有什么办法可以知道播放器停止,重新启动播放器?

 

    Best regard!

  • 1. 从VideoCoding的Algorithm来讲,编码器是有一个BBV的,就是会虚拟一个解码器的缓冲区,编码器会实时的调整编码参数使得这个虚拟解码缓冲区不发生上溢和下溢,DM3只是提供了Codec核心,这个虚拟缓冲区需要你自己去构建,如果不使用这种机制,就只好在解码端开一个大的Buf去缓冲,如果是按照CBR去传输,是可以精确估计缓冲区的帧数的,你可以采用收到1帧就解码播放1帧的策略试一试。