NVIDIA视频编解码

开源了两个项目:英伟达显卡视频编解码、jetson视频编解码。都是基于官方SDK进行的封装,由于官方自带的demo晦涩难懂并且每块都是独立的,我对SDK进行二次封装并形成了一套较为完整的视频编解码流程,调用简单,有完整的测试程序,想学习SDK或者想直接使用的可以看过来。

1、NVIDIA视频编解码

项目基于英伟达 Video_Codec_SDK_11.0.10 API实现了视频硬解码、渲染、软/硬编码、保存为MP4。

下面是项目的测试程序:

cpp 复制代码
#include "NvCodecRender.h"
#include <chrono>
#include <thread>
int main(int argc, char **argv)
{
    if (argc < 5) {
        printf("./demo input output gpu_idx use_nvenc(0  -not use 1- use)\n");
        return -1;
    }
    ck(cuInit(0));
    NvCodecRender *test = new NvCodecRender(argv[1], argv[2], atoi(argv[3]), atoi(argv[4]) == 1 ? true : false);
    auto start_time = std::chrono::high_resolution_clock::now();
    test->Render();
    delete test;
    auto end_time = std::chrono::high_resolution_clock::now();
    auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - start_time);
    std::cout << "耗时: " << duration.count() << " 毫秒" << std::endl;
    return 0;
}

NVIDIA视频编解码项目地址:GitHub - BreakingY/Nvidia-Video-Codec: Nvidia video hard decoding, rendering, soft/hard encoding, and writing to MP4 file ; Nvidia视频硬解码、渲染、软/硬编码并写入MP4文件

2、JETSON视频编解码

NVIDIA针对自家嵌入式设备jetson的视频编解码又单独实现了一套SDK,我针对这个SDK封装了一个视频编解码库,包含解码和编码库,支持Jetpack 5.x 。

jetson_dec_5.0.2

  • 基于Jetpack 5.0.2 jetson_multimedia_api 的视频解码库,支持解码H264、H265,实现过程参考jetson_multimedia_api/samples/02_video_dec_cuda
  • 测试程序完善,支持h264裸流、mp4测试文件,h264裸流测试需要修改一下test/video_decode_main.cpp,修改if else分支即可、支持压力测试,可测试jetson解码性能
  • 输入:H264/H265 解码器输出:NV12
  • 生成动态库libJetsonDec.so,头文件 + libJetsonDec.so 即可作为第三方库使用

jetson_enc_5.0.2

  • 基于Jetpack 5.0.2 jetson_multimedia_api 的视频编码库,实现过程参考jetson_multimedia_api/samples/01_video_encode
  • 输入:YUV420P,编码器输出:H264。
  • 如需H265可自行修改(JetsonEnc::encode_proc函数/JetsonEnc.cpp),还是比较简单的
  • 生成动态库libJetsonEnc.so,头文件 + libJetsonEnc.so 即可作为第三方库使用

项目地址:GitHub - BreakingY/jetpack-dec-enc: Jetson Video Encoding and Decoding ; Jetson Jetpack5.x视频编解码库

复制代码
var code = "803dc3f0-cc50-41cd-a048-d6b1471cc4cb"
相关推荐
智能直播3 天前
RK3576 + NDI 框架:HX2 编码输出与 HX2/FULL介绍
音视频·实时音视频·视频编解码
Industio_触觉智能5 天前
瑞芯微RK平台视频硬解排障指南-上|编解码、GStreamer与零拷贝全解析
视频编码·视频编解码·零拷贝·gstreamer·视频解码·rk3576
常州晟凯电子科技6 天前
8路CVBS/AHD模拟视频编码器评测
音视频·视频编解码
VidDown7 天前
上线三个月后的第一次事故:一个 Django 服务的日志、监控与故障复盘
数据库·python·django·wpf·音视频·视频编解码
VidDown8 天前
24fps 转 25fps 不只是改个数字:帧率转换、PAL/NTSC 与音频补偿
python·网络协议·音视频·视频编解码·视频
常州晟凯电子科技8 天前
8路CVBS/AHD合成一路视频无线传输系统评测
音视频·视频编解码
智能直播9 天前
网络RTMP拉流不卡顿、声音不同步,一文讲透缓冲区、时间戳
开发语言·ffmpeg·php·音视频·视频编解码
智能直播9 天前
RK3528 V4L2 框架 UVC 接口自动获取 H.264 / MJPEG / YUYV 格式:从内核采集到硬解分发
java·网络·实时音视频·视频编解码·h.264
常州晟凯电子科技10 天前
多对一无线视频传输系统评测
音视频·视频编解码
智能直播12 天前
RK3528 RGA+DRM框架 HDMI out视频输出:从多图层合成到显示送显
视觉检测·音视频·实时音视频·视频编解码