2021-09-23 基于ffmpeg+nginx+rtsp的http-flv点播方案-推流失败问题分析

项目场景:

使用ffmpeg拉取rtsp服务器的码流,并且推rtmp流到nginx,web前端使用flv码流进行点播;
拉流以及推流使用的是ffmpeg原生接口;
点播服务器使用是NGINX,并集成了http-flv模块(可以参考我的其他文档。)


问题描述:

ffmpeg打开rtsp的url,从in_stream的码流中,复制所需要的h264编码信息;然后 写入对应的rtmp流(out_stream)中,结果发现写入函数av_interleaved_write_frame一直异常,无法写入?并且错误信息为“ Broke Pipe"?
        AVStream *in_stream = ifmt_ctx->streams[videoindex];
        AVStream *out_stream = avformat_new_stream(ofmt_ctx, in_stream->codec->codec);
       ......
        //复制AVCodecContext的设置(Copy the settings of AVCodecContext)
        ret = avcodec_copy_context(out_stream->codec, in_stream->codec);
       ......
       //紧接着调用打开、写入头、设置一些参数、循环读取数据、写入数据
        ret = avio_open(&ofmt_ctx->pb, out_filename, AVIO_FLAG_WRITE);
       ......  
        ret = avformat_write_header(ofmt_ctx, /*NULL*/&options);
     	......
         av_dump_format(ofmt_ctx, 0, out_filename, 1);
       ......
        while (m_bRun)
        {
   
            AVStream *in_stream, *out_stream;
            ret = av_read_frame(ifmt_ctx, &pkt);
            if (ret < 0)
            {
   
                int err_code = ret;
                char buf[1024] = {
    0 };
                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShaYQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值