非得逼我出来摆地摊你们才知道LinkSDK仅42行代码能做啥

雷军曾经说过:站在风口上,猪都可以飞起来。,现在什么风口,那要属摆地摊,但我们的设备能是地摊货吗,非也,但我不得不响应雷军的号召,来吆喝几句:
走过路过的朋友们,瞧一瞧,看一看了啊,直播设备亏本大甩卖了啊,不买也来摸一摸,这年头不摸下地摊货,就是OUT了啊,下面我就来介绍下这个非地摊货的直播设备了。
如果大家还不熟悉我们的直播设备,可以进到以下链接:
https://blog.csdn.net/weixin_41486034/article/details/106240240
https://blog.csdn.net/weixin_41486034/article/details/106351578
https://blog.csdn.net/weixin_41486034/article/details/106563286

原来我们的设备真的是很强大,居然还能二次开发啊,这哪是什么地摊货啊,下面我就来介绍下LinkSDK仅42行代码能做啥

描述

海思的芯片功能越来越强大,性能越来越高,性能比已经把国外的同类芯片甩了好几条街。但海思的SDK相对偏向硬件的,对软件人员不算很友好,尤其是初学者,面对纷繁复杂的各种结构体,更是无从下手;网上也有人吐槽说连视频采集时信号采样率是单沿还是双沿都需要软件人员指定,这对于纯软件人员来说,那是一脸懵。想起造就普及型手机辉煌时代的联发科,他们不仅做了芯片,还把软件全都给做了,用户拿回去套个壳就能出货了。灵派科技也许受到了联发科的启发,他们开发了LinkLib,对海思的SDK进行了高度封装,并把海思SDK并不提供的视音频合成(MUX),还有网络流输出,以及各种视频叠加(OSD)等等都加入了LinkLib。灵派科技还提供了基于LinkLib开发的高清编码器,并公开了高清编码器源代码(包括前台和后台的代码),客户可以直接拿高清编码器的源代码进行修改成自己的产品,或者直接改个LOGO就直接出货也是可行的。
在这里插入图片描述

代码示例

下面这42行代码就轻松实现了音视频采集,并对视频进行H264编码压缩,对音频进行AAC编码压缩,然后输出RTMP网络流。如果是在海思SDK上进行开发,没有上万行代码,是搞不定的;海思的sample_venc.c代码行就有1500,这个例子只是处理视频采集压缩,但并没有处理音频,更不会帮你处理视频和音频的同步问题,网络流输出更无从谈起。因此LinkLib确实大大减少了偏底层的开发工作量,让软件人员专注于业务逻辑。

#include 
#include "Link.h"
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    Link::init();

    LinkObject *vi=Link::create("InputVi");
    QVariantMap dataVi;
    dataVi["interface"]="HDMI-A";
    vi->start(dataVi);

    LinkObject *ai=Link::create("InputAi");
    QVariantMap dataAi;
    dataAi["interface"]="HDMI-A";
    ai->start(dataAi);

    LinkObject *encv=Link::create("EncodeV");
    QVariantMap dataEncV;
    dataEncV["codec"]="h264";
    dataEncV["bitrate"]=2000;
    dataEncV["width"]=1280;
    dataEncV["height"]=720;
    encv->start(dataEncV);

    LinkObject *enca=Link::create("EncodeA");
    QVariantMap dataEncA;
    dataEncA["codec"]="aac";
    dataEncA["bitrate"]=128000;
    dataEncA["samplerate"]=48000;;
    enca->start(dataEncA);

    LinkObject *mux=Link::create("Mux");
    QVariantMap dataMux;
    dataMux["path"]="rtmp://127.0.0.1/live/test";
    mux->start(dataMux);

    vi->linkV(encv)->linkV(mux);
    ai->linkA(enca)->linkA(mux);

    return a.exec();
}

参考

开源高清编码器源代码:https://gitee.com/LinkPi/Encoder
开源高清编码器使用说明书: https://gitee.com/LinkPi/Encoder/wikis/pages
开源高清编码器基于LinkLib编写,LinkLib API说明参见:https://gitee.com/LinkPi/LinkLib/wikis/pages
开源高清编码器评估板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22796185904.12.5f005504YajIDM&id=619720369822

猜你喜欢

转载自blog.csdn.net/weixin_41486034/article/details/106571937