rtp h264推流工具

本文介绍了在Ubuntu系统中,利用RTP协议推送H264流所需的环境和依赖,包括libread_h264库。同时提到了蓝牙先生的博客,该博主专注于k shell和系统安全领域的知识分享。
摘要由CSDN通过智能技术生成

环境

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

依赖libread_h264

蓝牙先生的博客_CSDN博客-k shell领域博主蓝牙先生擅长k shell,等方面的知识,蓝牙先生关注系统安全领域.https://blog.csdn.net/m0_37132481?spm=1011.2559.3001.5343

 src/rtp_stream_encoder.h

$ cat src/rtp_stream_encoder.h
#if ! defined(__RTP_STREAM_ENCODER_H__)
#define __RTP_STREAM_ENCODER_H__
#include <stdio.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdbool.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define rtp_stream_encoder_print(fmt,...)  do{printf(fmt,##__VA_ARGS__);char *pos = __FILE__; printf(" | %s,%d", pos, __LINE__);}while(0);

struct rtp_stream_encoder_context_t {
        size_t rtp_max_payload_size;
        uint8_t *udp_payload;
        size_t rtp_payload_size;
        bool aggregation;
        uint8_t payload_type;//96:h264
        uint16_t seq;
        uint32_t timestamp;
        uint32_t ssrc;


        /* udp socket info */
        int sockfd;
        struct sockaddr_in dest_addr;
};
#if defined(__RTP_STREAM_ENCODER_CMDLINE_PARM__)
struct rtp_stream_encoder_cmdline_parm_t {
        char *dest_ip_addr;
        uint16_t dest_ip_port;
};
#endif /* #if defined(__RTP_STREAM_CODER_CMDLINE_PARM__) */
int rtp_stream_encoder_context_init(struct rtp_stream_encoder_context_t *ctx);
int rtp_stream_encoder_send_data(struct rtp_stream_encoder_context_t *ctx, int marker);
int rtp_stream_encoder_send_nalu(struct rtp_stream_encoder_context_t *ctx, char *nalu_buffer, size_t nalu_buffer_size, bool last_nalu);

#endif /* #if ! defined(__RTP_STREAM_ENCODER_H__)*/

 src/rtp_stream_encoder.c

$ cat src/rtp_stream_encoder.c
#include "rtp_stream_encoder.h"
#inclu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值