两块dm6467的板子,A板通过encode 将venc1_process的hOutBuf数据 用udp发送到 B板上;
B板 将接收到的数据传递给decode程序 vdec2_process函数,显示“Failed to decode video buffer”,返回值为-1,Dmai_EFail 错误。
补充问题:
1、发送侧 取出的hOutBuf 的开始几帧 有140000字节左右,后面的就慢慢的小了,默认发1000帧,最后一帧大约40000字节,不知道起始的那么大,是否正常。
2、通过网络抓包显示: 起始的10帧没有丢失,第一个UDP的大小为第11帧的数据,不知道为什么,而且之后 偶尔有丢包,不知道是不是影响解码的原因。
麻烦帮忙解答一下,非常感谢!
Feng Dong:
编码侧还算正常,多大分辨率?编码侧可以本地保存确认是否正确.
数据包,先测udp传输是否稳定吧
ning xu:
回复 Feng Dong:
回楼上:1080P 数据量很大,编码侧保存没有问题,文件能够解码播放。 udp的传输,现在还是局域网侧,相对稳定。
谢谢您的意见。
最近试验发现:
起始的帧 丢失的原因 :是由于数据量太大(1080P), 发送不成功造成的。接收成功的第一帧一般是发送的第11帧,<65536,看来,超出的UDP无法发送。
但是,不明白,为什么一开始的10帧左右会那么大?
其次,不知道,之前接收到的数据帧丢失的话,为什么之后收到的一帧数据(<65536)的会“Failed to decode video buffer”,或者返回值是3(Dmai_EFIRSTFIELD),不明白什么意思,望指教。
考虑解决的方式,在发送侧将UDP数据拆包发送,加上包头,与编号等,在接收侧组装,是否可行?
解决方法二:做TS流解析,因为在demo中只有encode侧的TS流层层打包发送的过程,不知是否有高手做过接收端的TS流解析程序,该方式是否易于实现,望指点思路。
谢谢大家,困惑很久了。。。