HEVC/H.265 Encoder – 比特率优化版


ngcodec-tile

应用概要

NGCodec 的 RealityCodec 是一款面向 H.265/HEVC 的分布式广播质量级转码器,支持 ABR,可在本地 Alveo 卡和云端 FPGA 实例中平稳运行。

供应商 已修改 大小 容器版本
 Xilinx 2020 年 6 月 16 日 1.64 GB hevc_u200_v1.3
2020 年 7 月 1 日 1.64 GB hevc_u50_v1.3

如果您有其它问题和/或想要报告一个用户体验问题,请将相关信息发送至 alveo_video_ea@xilinx.com


部署选项

该应用是容器化的,可以在几分钟内轻松地在云中或本地运行。

云服务
Nimbix U200
  • Xilinx 运行时:2019.2
  • 目标平台:nx5u_xdma_201830_2
Nimbix U50
  • Xilinx 运行时:2020.1
  • 目标平台:nx_u50_202010_a
本地
U50
  • Xilinx 运行时:2020.1
  • 目标平台:xilinx_u50_gen3x4_xdma_base_2


 

试用或购买

获取用于评估的访问密钥

开始免费试用并运行以下代码示例。


开始评估

根据部署方法按照说明操作。

Nimbix U200

1.

注册 Nimbix 服务

  • 访问 Nimbix Cloud 网站并登录: https://www.nimbix.net/contact-us
  • 提交报名表后,您将立即收到一封电子邮件,告诉您如何设置 Nimbix 帐户。

2.

应用执行


2.1 在 Nimbix 平台上选择应用。

登录 Nimbix 平台:

https://platform.jarvice.com/?page=compute&name=HEVC%20DRM%20U200

  • 将您从 Accelize 得到的 cred.json 上传至 Nimbix。
    • 请查看这里,了解如何在 Nimbix 上上传/下载文件。

  • 单击弹出窗口左下方的 “Desktop Mode” 按钮。
    • "Desktop Mode” 是使用交互式 shell 探索 HEVC。
    • 转到步骤 2.2.1 进入下一步。

  • 单击弹出窗口左下方的 “Single Command” 按钮。
    • Single Command” 可使用示例 1080p 输入文件进行快速演示和视觉检查。
    • 注意,因为以这种方式运行的每个命令都可以在不同的 FPGA 上运行,因此这可能会导致 drm 问题。如果您要连续运行多个命令,我们建议您使用“Desktop Mode”。
    • 转到步骤 2.2.2 进入下一步。

2.2 运行应用程序

您可以运行单个命令,也可以启动可运行多个命令的交互式 shell。


2.2.1 以“Desktop Mode”运行

使用以下参数并点击“Submit”按钮。

机器:

  • 机型: nx5u_xdma_201830_2
  • :16

通过 vnc 或 ssh 单击 submit & launch(请注意,初始化实例可能需要一些时间)

如需通过 vnc 连接,请点击桌面预览

如需通过 ssh 连接,ssh nimbix@[address provided],使用提供的密码。

  


请打开一个终端和 cd drmapp/


将之前生成的 cred.json 拷入当前目录。您可以使用以下方法。


解锁 fpga,输入 ./drmapp.exe


现在打开第二个终端,运行 ffmpeg 命令。
示例脚本位于 /home/nimbix/scripts/ 

如果没有指定参数,脚本将默认使用 /samples/in.mp4。

传回视频并播放。( https://support.nimbix.net/hc/en-us/articles/208083526-How-do-I-transfer-files-to-and-from-JARVICE- )


2.2.2 运行“单个命令”

使用以下参数并点击“Submit”按钮。

机器:

  • 机型: nx5u_xdma_201830_2
  • 内核:16

参数:

  • 访问密钥:选择先前在计算机上下载的 "cred.json" 文件。
  • FFMPEG 参数:
    -y -i /samples/in.mp4 -c:v NGC265 -b:v 1000K -vf fps=60 -f rawvideo /data/out.265

3.

结果

任务完成后,Nimbix FTP上将提供 “out.265” HEVC 编码的示例。 您可下载它并使用视频播放器软件来显示它。

您现在就可通过以下方法使用自己的输入视频文件:

  • 上传至 Nimbix FTP
  • 在 FFMPEG 参数中,将“-i /samples/in.mp4”用“-i /data/{YourFileName}”替换
Nimbix U50

1.

注册 Nimbix 服务

  • 访问 Nimbix Cloud 网站,注册免费试用 Alveo:

https://www.nimbix.net/alveotrial

  • 提交报名表后,您将立即收到一封电子邮件,告诉您如何设置 Nimbix 帐户。
  • 完成 Nimbix 帐户设置后,可免费试用。

2.

应用执行


2.1 在 Nimbix 平台上选择应用。

登录 Nimbix 平台:

https://platform.jarvice.com/?page=compute&name=HEVC%20DRM%20U50

  • 将您从 Accelize 得到的 cred.json 上传至 Nimbix。
    • 请查看 这里,了解如何在 Nimbix 上上传/下载文件。

  • 点击“HEVC DRM U50”应用模块。
  • 单击弹出窗口左下方的 “Desktop Mode” 按钮。
    • 桌面模式”是使用交互式 shell 探索 HEVC。
    • 转到步骤 3.2.1 进入下一步。

  • 单击弹出窗口左下方的 “Single Command” 按钮。
    • Single Command” 可使用 1080p 示例输入文件进行快速演示和视觉检查。
    • 注意,因为以这种方式运行的每个命令都可以在不同的 FPGA 上运行,因此这可能会导致 drm 问题。如果您要连续运行多个命令,我们建议您使用“Desktop Mode”。
    • 转到步骤 3.2.2 进入下一步。

3.2 运行应用程序

您可以运行单个命令,也可以启动可运行多个命令的交互式 shell。


2.2.1 以“Desktop Mode”运行

使用以下参数并点击“Submit”按钮。

机器:

  • 机机器类型:nx_u50_202010_a
  • 内核:16

通过 vnc 或 ssh 单击 submit & launch(请注意,初始化实例可能需要一些时间)

如需通过 vnc 连接,请点击桌面预览

如需通过 ssh 连接,ssh nimbix@[address provided],使用提供的密码。


请打开一个终端和 cd drmapp/


将之前生成的 cred.json 拷入当前目录。您可以使用以下方法。


解锁 fpga,输入 ./drmapp.exe


现在打开第二个终端,运行 ffmpeg 命令。
示例脚本位于 /home/nimbix/scripts/ 

如果没有指定参数,脚本将默认使用 /samples/in.mp4。


2.2.2 运行“单个命令”

使用以下参数并点击“Submit”按钮。

机器:

  • 机机器类型:nx_u50_202010_a
  • 内核:16

参数:

  • 访问密钥:选择先前在计算机上下载的 "cred.json" 文件。
  • FFMPEG 参数:
    -y -i /samples/in.mp4 -c:v NGC265 -b:v 1000K -vf fps=60 -f rawvideo /data/out.265

3.

结果

任务完成后,Nimbix FTP上将提供 “out.265” HEVC 编码的示例。 您可下载它并使用视频播放器软件来显示它。

您现在就可通过以下方法使用自己的输入视频文件:

  • 上传至 Nimbix FTP
  • 在 FFMPEG 参数中,将“-i /samples/in.mp4”用“-i /data/{YourFileName}”替换
本地 U50

1.

主机设置

Xilinx Runtime (XRT) 主机应用在 CentOS 7.x 上提供支持。  支持 sudo 访问,使用以下命令下载并运行安装脚本:

  


1.1 为 Xilinx 基础运行时克隆 GitHub 版本库

    git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git && cd Xilinx_Base_Runtime

1.2 运行主机设置脚本

    ./host_setup.sh -v 2020.1 -p alveo-u50 –skip-shell-flash


注:

  • 请等待安装完成。  在此期间,您可能需要按 [Y] 才能继续进行主机设置。
  • 用于主机设置的脚本可用于设置其它版本的 XRT 和 shell。请查看  https://github.com/Xilinx/Xilinx_Base_Runtime,了解更多详情。

  


1.3 U50 Gen3x4 Shell 安装:

U50 gen3x4 shell 可在 Xilinx 专区找到,网址为:https://www.xilinx.com/member/alveo-platform.html

下载相应的部署目标平台软件包,解压缩并安装 sc、cmc 和 xdma 基础软件包:

CentOS:

sudo yum remove -y xilinx-cmc-u50 xilinx-sc-fw-u50
sudo yum install ./
sudo yum install ./

sudo yum install ./
sudo yum install ./

sudo yum install ./

用新的 shell 刷新 FPGA 之后,对计算机进行冷重启。


1.4 安装 Docker(如果尚未安装)

支持 sudo 访问时,请使用以下命令运行实用程序脚本来安装 docker。


转向 Xilinx_Base_Runtime 实用程序目录

    cd Xilinx_Base_Runtime/utilities

运行 Docker 安装脚本

    ./docker_install.sh


如果 docker 已安装,启动:
systemctl restart docker
systemctl enable docker


1.5 安装 Docker 映像

下载 Docker Image

安装

docker load --input [downloaded_docker_image.tar.gz]


2.

应用执行

在终端窗口中输入以下命令以运行该应用程序:


2.1 通过 Xilinx_Base_Runtime 脚本设置环境变量

    source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh


确保 Docker 在输出目录 (默认/dev/shm )中有写权限
chmod 777 /dev/shm/


2.2 运行 Docker 映像

您可以运行单个命令,也可以启动可运行多个命令的交互式 shell。


2.2.1 单命令

    docker run -v /tmp/cred.json:/cred.json -v /dev/shm:/data $XILINX_DOCKER_DEVICES xilinxatg/dcg_video_nimbix:HEVC_U50_Centos7 /cred.json "-y -i /samples/in.mp4 -c:v NGC265 -vf fps=60 -b:v 5M -f rawvideo /data/1080p60_5mbs.265"

命令参数描述:

  • -v /tmp/cred.json:/cred.json  - Map local cred.json dir : 容器目录
  • -v /dev/shm:/data -  Map the local dir : 生成输出文件的容器目录
  • $XILINX_DOCKER_DEVICES  - 由主机设置脚本设置的环境变量
  • /cred.json - 指示运行时脚本哪里可以找到 cred.json
  • -y -i /samples/in.mp4 -c:v NGC265 -vf fps=60 -b:v 5M -f rawvideo /data/1080p60_5mbs.265 - ffmpeg 命令行参数
  • "0" – 可选参数,指定要解锁的器件 ID。"0 1" 解锁器件 0 和 1。

2.2.2 交互式 shell

    docker run -u alveo -v /tmp/cred.json:/cred.json -v /dev/shm:/data $XILINX_DOCKER_DEVICES --entrypoint bash -it xilinxatg/dcg_video_nimbix:HEVC_U50_Centos7

命令参数描述:

  • -v /tmp/cred.json:/cred.json  - Map local cred.json dir : 容器目录
  • -v /dev/shm:/data -  Map the local dir : 生成输出文件的容器目录
  • $XILINX_DOCKER_DEVICES  - 由主机设置脚本设置的环境变量
  • /cred.json - 指示运行时脚本哪里可以找到 cred.json
  • --entrypoint bash -it  - 启动 bash 会话并使其具有交互性

解锁 FPGA

cd drmapp/

cp /cred.json .

./drmapp.exe &

在 FPGA 上解锁器件 0。解锁多个器件,执行 ./drmapp.exe 0 1 &

cd ~/scripts/  

运行 ffmpeg.您可使用示例脚本作为示例。可以在 /samples 中找到一个示例输入 mp4 文件

./1080p60_5mbs.cmd

停止 DRM

kill %1

  


3.

结果

任务完成后,输出文件将存储在/dev/shm/