ITPub博客

首页 > 应用开发 > IT综合 > 为了直播流畅,实现直播商城源码的转码

为了直播流畅,实现直播商城源码的转码

IT综合 作者:云豹科技晓彤 时间:2021-09-03 16:11:14 0 删除 编辑

直播商城源码为了减少网络波动对直播的影响,会实现直播流转码的功能,那么直播商城源码是怎么实现的转码的呢?

一、直播流转码配置及说明

listen              1935;

max_connections     1000;

#定义一个默认的vhost

vhost __defaultVhost__ {

}

#定义一个名为v.flyfn.com的vhost,这样只对v.flyfn.com这个vhost中所有流进行转码

vhost v.flyfn.com {

    transcode {

        enabled     on;      #开始实时转码

        ffmpeg      ./objs/ffmpeg/bin/ffmpeg;    #ffmpeg的执行文件

        engine sd {       #这里通过engine定义转一个名为sd的转码引擎,这个名称在下面输出流的时候用到

            enabled         on;    #开始,设置为off就是关闭

            vfilter {      #对应ffmpeg中的滤镜参数,可以在这里写

                v           quiet;   #减少ffmpeg的输出日志

            }

            vcodec          libx264;  #视频编码器

            vbitrate        500;    #视频比特率

            vfps            25;    #视频帧率

            vwidth          768;     #宽

            vheight         320;     #高

            vthreads        12;    #使用ffmpeg线程数

            vprofile        main;   #编码等级,high、main、baseline

            vpreset         medium;   #视频预设

            vparams {         #ffmpeg的其他视频参数

                g            100;   # 指定gop时长为4秒=100 / 25(vfps)

            }

            acodec          libfdk_aac;    #音频编码器

            abitrate        70;      #音频比特率

            asample_rate    44100;      #音频采样率

            achannels       2;     #声道

            aparams {     #ffmpeg中的其他音频参数

            }

            #转码后的流输出到那里,这里是输出到本机了。另外一种推流到vhost的方法:

            #rtmp://SRS_IP:[port]/[app]?vhost=[vhost]/[stream]

            #[vhost] 输入流的vhost

            #[port] 输入流的端口

            #[app] 输入流的app

            #[stream] 输入流的流名称

            #[engine] 转码引擎的名称

            output          rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];

        }

         #可以定义多个engine

        engine ld {

            enabled         on;

            vfilter {

            }

            vcodec          libx264;

            vbitrate        300;

            vfps            25;

            vwidth          640;

            vheight         480;

            vthreads        12;

            vprofile        main;

            vpreset         medium;

            vparams {

            }

            acodec          libfdk_aac;

            abitrate        70;

            asample_rate    44100;

            achannels       2;

            aparams {

            }

            output          rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];

        }

    }

}

二、用ffmpeg推流

./ffmpeg -re -i 'abc.rmvb' -f flv -y rtmp://v.flyfn.com:1935/live?vhost=v.flyfn.com/test


原始视频播放:rtmp://v.flyfn.com/live/test

转码流1(sd):rtmp://v.flyfn.com/live/test_sd

转码流2(ld):rtmp://v.flyfn.com/live/test_ld


三、推流到srs的vhost时的另一种方法

rtmp://SRS_IP:[port]/[app]?vhost=[vhost]/[stream]


四、如何对直播商城源码的流都进行转码

listen 1935;

vhost v.flyfn.com {

    transcode live{          #对形如rtmp://srs_ip:1935/live下的流进行转码

        ......

    }

}

五、如何对直播商城源码的某一路直播流进行转码

listen 1935;

vhost v.flyfn.com {

    transcode live/livestream {          #对形如rtmp://srs_ip:1935/live/livestream进行转码

        ......

    }

}

声明:本文由云豹科技转发自冯继虎博客,如有侵权请联系作者删除


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70002045/viewspace-2790321/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
音视频软件开发相关知识科普账号

注册时间:2021-06-11

  • 博文量
    163
  • 访问量
    60341