调试RTSP遇到的问题
RTSP的开源代码很多,移植方法也很多,所以在这里不做过多的描述。我主要来为大家讲述下移植过程中遇到的一些容易忽视的问题。
一、系统32位和64位兼容的问题
目前大部分的嵌入式系统都是32位的,不过不乏有些64位的。所以在移植过程中我们要特别小心。下面是64位和32位系统数据类型所占字节的大小。
32位:
int 4个字节
long int 4个字节
long long 8个字节
指针 4个字节
64位:
int 4个字节
long int 8个字节
long long 8个字节
指针 8个字节
在移植过程中,我们会有网络字节序的转换步骤。因为比如包、ssrc和时间戳,都需要字节转换,这里要特别注意。在调试中,我们可以打印出转换前后的值,分析对错。当然,也可以通过wareshark抓包分析,查看相关信息是否正确。
二、打时间戳问题
1、H.264时间戳:
timestamp=90000/帧率.*(帧号 - 基准帧号) //基准帧号,我们一般是找到关键帧的前一帧做为基准帧
2、AAC时间戳:
AAC比较特殊,因为它的编码需要1024的采样点才能正常编码(PCM-->AAC&#