通过阅读本文,你可以了解Linux推流SDK所涉及的数据类型。

目录

数据类型 描述
rts_frame 封装音频帧和视频帧的信息类型。
rts_golbal_config_t 全局配置。
rts_log_config_t 日志配置。
rts_config_t 推流相关配置。
rts_stream_config_t 音视频相关配置。
rts_event_handler_t 事件回调配置。

详情

  • rts_frame:封装音频帧和视频帧的信息类型。
    struct rts_frame {
        void *buf;
        int size;
        int is_audio;
        unsigned long long pts;
        unsigned long long dts;
    };
                        
    数据成员 描述
    buf frame数据buffer,视频h264要求是AnnexB格式,nalu头部是{0, 0, 0, 1}。
    size buf的字节数。
    is_audio 是否是音频帧。取值:
    • 1:音频帧。
    • 0:视频帧。
    pts 演示时间戳。单位:毫秒。
    dts 解码时间戳。单位:毫秒。
  • rts_golbal_config_t:全局配置。
    typedef struct {
        rts_log_config_t log_config;
    } rts_golbal_config_t;
                        
    数据成员 描述
    rts_log_config_t 日志配置结构体。
  • rts_log_config_t:日志配置。
    typedef struct {
        int max_file_size;
        int log_keep_count;
        RTS_LOG_LEVEL log_level;
    } rts_log_config_t;
    
    typedef enum {
        RTS_LOG_NONE = 0,
        RTS_LOG_DEBUG = 1,
        RTS_LOG_INFO = 2,
        RTS_LOG_WARN = 3,
        RTS_LOG_ERROR = 4,
    } RTS_LOG_LEVEL;
    数据成员 描述
    max_file_size 单个日志文件最大文件大小,单位MB。
    log_keep_count 保留日志文件个数。
    log_level 打印日志等级,线上建议设置RTS_LOG_ERROR,否则日志太多会影响性能。
  • rts_config_t:推流相关配置。
    typedef struct {
        rts_stream_config_t stream_config;
        rts_event_handler_t event_handle;
    } rts_config_t;
    数据成员 描述
    stream_config 推流音视频相关配置。
    event_handle 推流事件回调接口配置。
  • rts_stream_config_t:音视频相关配置。
    typedef struct {
        rts_codec pub_audio_codec;
        int pub_audio_sample_rate
        int pub_audio_channels;
        rts_codec pub_video_codec;
    } rts_stream_config_t;
    
    typedef enum {
        RTS_CODEC_H264 = 3,
        RTS_CODEC_OPUS = 1000,
    } rts_codec;
                        
    数据成员 描述
    pub_audio_codec 音频编码格式,目前只支持opus,opus 帧长要求是20ms。不支持AAC编码。
    pub_audio_sample_rate 音频采样率,目前只支持48000。
    pub_audio_channels 音频声道数, 取值:
    • 1:单声道。
    • 2:双声道。
    pub_video_codec 视频编码格式,目前只支持H264。视频不支持B帧。
  • rts_event_handler_t:推流事件回调接口配置。
    typedef struct {
        void (*on_key_frame_req)(void *user_data);
        void (*on_disconnected)(void *user_data);
        void (*on_publish)(void *user_data, int result);
    
        void *user_data;
    } rts_event_handler_t;
    数据成员 描述
    on_key_frame_req 请求关键帧回调,收到该请求后设置编码器生成关键帧。
    on_disconnected 网络连接断开回调,由于网络异常等导致连接断开。
    on_publish 推流建连是否成功回调,建连过程是异步的,需要回调通知用户是否成功。
    user_data 用户输入的自定义信息,之后的回调参数中会携带该user_data。