gb28181简单解包rtp ps流,推出rtmp(java版基于springboot):五、基于netty创建接收流的udp和tcp服务器

解析流程参考 https://blog.youkuaiyun.com/chen495810242/article/details/39207305
代码基于github上的修改 https://github.com/yangjiechina/JGB28181
流解析的代码长时间测试海康摄像时还不稳定,所以主要以学习为主,有知道的大佬欢迎指点下=。=
udp服务构建
import com.fengyulei.fylsipserver.config.ConfigInfo;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioDatagramChannel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
//创建方式和sip的服务器创建差不多
@Component
public class MediaUdpServer implements Runnable{
   

    private static final Logger logger = LoggerFactory.getLogger(MediaUdpServer.class);

    @Autowired
    private ConfigInfo configInfo;
	//udp模式,直接注入
    @Autowired
    private MediaUdpHandler mediaUdpHandler;

    private Bootstrap bootstrap = null;
    private EventLoopGroup workerGroup = null;

    private Integer port;

	//跟随springboot异步启动
    @PostConstruct
    private void init(){
   
        this.port=configInfo.getMediaUdpTcpServerPort();
        Thread thread=new Thread(this);
        thread.setDaemon(true);
        thread.setName("media udp server");
        thread.start();
    }

    @Override
    public void run(){
   
        workerGroup= new NioEventLoopGroup();
        try {
   
            bootstrap = new Bootstrap();
            bootstrap.group(workerGroup)//
                    .channel(NioDatagramChannel.class) //
                    .option(ChannelOption.SO_RCVBUF,1024*1024)
                    .handler(new ChannelInitializer<NioDatagramChannel>() {
    //
                        @Override
                        public void initChannel(NioDatagramChannel ch) throws Exception {
   
                            //udp可以使用单例Handler netty udp只有一个通道
                            ch.pipeline().addLast(mediaUdpHandler);
                        }
                    });
            logger.info("UDP服务启动成功port:{}", port);
            bootstrap.bind(port).
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值