LinkLib例子之三:Hi3531D文件录制

Record

该示例程序演示了如何编码并封装一个可回放的文件,实现一个文件录制的功能。

该示例包含了音视频编码模块,以及音视频编码参数设置的代码片段,可以适用于大量场景。

准备工作

•参照用户手册搭建开发环境、编译3531D工程、配置网络启动参数。
•将带有HDMI音视频输出功能的设备(如摄像机、笔记本、机顶盒等)接入评估板的HDMI-A接口
•上电,进入/root/demo目录
•运行Record程序
•按任意键停止录制
•将得到的test.mp4文件使用播放器播放(VLC、MPlayer等),如播放出现黑屏,可能是虚拟机导致的,可以将文件拷贝到windows主机再播放。

运行结果

在这里插入图片描述
在这里插入图片描述

源程序

//main.cpp
#include <QCoreApplication>
#include "Link.h"
#include <stdio.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    Link::init();

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

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

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

    LinkObject *encV=Link::create("EncodeV");
    QVariantMap dataEncV;
    dataEncV["codec"]="h264";
    dataEncV["width"]=1920;
    dataEncV["height"]=1080;
    dataEncV["bitrate"]=4000;
    encV->start(dataEncV);

    LinkObject *mp4=Link::create("Mux");
    QVariantMap dataMP4;
    dataMP4["path"]="test.mp4";

    ai->linkA(encA)->linkA(mp4);
    vi->linkV(encV)->linkV(mp4);

    mp4->start(dataMP4);

    qDebug()<<"Press any key to stop";
    getchar();

    mp4->stop();

    return a.exec();
}

#完整工程
https://gitee.com/LinkPi/3531D/tree/master/Record

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值