RTSP(H.264+AAC)音视频推流心得--linux C

本文分享了在Linux环境下使用C语言进行RTSP(H.264+AAC)音视频推流时遇到的3个主要问题:系统32位和64位兼容性、时间戳处理、音视频播放异常的调试方法。重点讨论了字节序转换、时间戳计算以及解决音视频同步问题的策略。
摘要由CSDN通过智能技术生成

调试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&#

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值