用RTP可以很方便的判断是否丢包,丢了那些包。
而用UDP如何判断丢包,这个问题不成立。
首先,NAL必须根据网络环境的MTU值再做一次分包或者并包,独立的一个NAL一个包只是一种情况。为了程序简便,通常是做当NAL大于MTU时做分包,NAL小于MTU时独立一个包这两种情况。为了在一个NAL被分包后,仍然可以标识出一个完整的NAL,H264在独立传输NAL时必须要用RTP,利用RTP的包头来做标识。然后,NAL的PTS、DTS虽然可以通过解析SPS得到,但是为了节约网络传输流量,通常情况下是丢弃SPS、PPS、SEI这些冗余数据,利用RTP包头上的时间戳来传递PTS信息,利用RTSP协议或者SDP来交互SPS、PPS信息。
综合以上几种情况,如果按照标准协议来做,H264的NAL是无论如何也必须使用RTP进行传输。哪怕现在为了绕开丢包、网关和路由防火墙这些问题,走TCP或者HTTP传输,也是要按照RTP的方式先进行重新打包。
所以提问用UDP传输,如何判断那几个包丢失这种问题,完全就是臆想。