😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。
😊 座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍
最近在转码压测,研发要求NetInt 硬件编码,这啥呀???经调研研究得知,原来NetInt 硬件编码是指由 NETINT Technologies 公司开发的基于专用集成电路 (ASIC) 的视频编码技术,通过其 Codensity 系列芯片为服务器提供专业级视频转码能力。这些解决方案以超高密度、低延迟和低功耗特性,专为现代视频流媒体、广播和云服务设计。
这是专为视频处理任务定制的硬件单元。
检查机器是否支持NetInt 硬件编码
使用命令:lspci | grep -i netint
bash
root@vdn:~# lspci | grep -i netint
41:00.0 Non-Volatile memory controller: NETINT Technologies Inc. Codensity T408 Video Encoding-Decoding Accelerator
81:00.0 Non-Volatile memory controller: NETINT Technologies Inc. Codensity T408 Video Encoding-Decoding Accelerator
从lspci输出可知:
- 系统已识别 2 块 NetInt Codensity T408 VPU (设备 ID 对应
15d9:0408,属于第一代 Codensity G4 芯片) - 设备类别显示为
Non-Volatile memory controller是正常现象(T408 采用 U.2 接口,兼容 NVMe 插槽,系统识别为该类别不影响功能) - 支持 H.264/HEVC 编码(最高 4K@10-bit HDR)、实时转码、多码率输出等核心功能
由上述可知,我们的机器是支持**NetInt 硬件编码的,**接下来,我们开始转码压测,
bash
#!/bin/bash
NUM_STREAMS=18 # 测试18路并发
RTMP_URL="rtmp://liteava.qcloud.com/live/litmoplayerstreamid"
OUTPUT_PREFIX="rtmp_netint_output"
for ((i=1; i<=$NUM_STREAMS; i++))
do
/root/ffmpeg \
-i "$RTMP_URL" -acodec copy -vcodec h264_ni_logan_enc -b:v 2M -r 30 -g 60 -s 1920x1080 -f null - > "${OUTPUT_PREFIX}_${i}.log" 2>&1 & done
wait
echo "10路RTMP流 NetInt编码测试完成"
使用 netint 编码时指定 codec 为 h264_ni_logan_enc,cpu 编码指定codec 为 libx264
查看转码结果的话,可以通过日志查看 speed, tail -f *output*.log | grep "speed=" ,如果是小于1,则说明会有卡顿,通过调整并发路数来确定稳定值。
其实通过 netint 编码 ,只需要在转码中加入参数即可,已经知道如何使用啦,赶快实战下吧。
梦想无论怎样模糊,总潜伏在我们心底,使我们的心境永远得不到宁静, 直到这些梦想成为现实。 -----林语堂