Skip to content

Nvidia video hard decoding, rendering, soft/hard encoding, and writing to MP4 file ; Nvidia视频硬解码、渲染、软/硬编码并写入MP4文件

License

Notifications You must be signed in to change notification settings

BreakingY/Nvidia-Video-Codec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nvidia-Video-Codec

  • Nvidia video hard decoding, rendering, soft/hard encoding, and writing to MP4 file
  • Nvidia视频硬解码、渲染、软/硬编码并写入MP4文件。

本项目基于英伟达 Video_Codec_SDK_11.0.10 API实现。

环境准备

  • 安装驱动,注意本项目使用的是Video_Codec_SDK_11.0.10,不同SDK要求的驱动版本不一样,本项目在465.19.01和535.104.12验证过,其他版本请自行查阅官网。
  • 安装cuda,版本和驱动保持一致即可,不同驱动对应不同cuda版本,驱动是向下兼容的,可以先安装cuda,在安装的时候选择一起安装驱动也可以,就这样就不需要单独安装驱动了。
  • 安装ffmpeg,版本 >= 4.x 安装在/usr/local,否则请修改CMakeLists,把ffmpeg头文件和库路劲添加进去。
  • 项目测试环境cuda 11.3 + 驱动 535.104.12 + ffmpeg 4.0.5、cuda 11.3 + 驱动 465.19.01 + ffmpeg 4.0.5 。

代码支持Linux、Windows

Linux编译

  • export PATH=$PATH:/usr/local/cuda/bin
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
  • mkdir build
  • cd build
  • cmake ..
  • make -j4
  • 测试 ./demo ../test/1080P.mp4 out.mp4 0 0 ,参数:输入文件、输出文件、使用哪张显卡(只有一张显卡的话就写0)、指定使用软编码还是硬件编码(0-软编码 1-硬件编码)

Windows编译

  • 没有测试过,但是代码是通用的。

注意

  • VideoCodec目录里的文件都是从Video_Codec_SDK_11.0.10中提取的,因为Video_Codec_SDK_11.0.10中文件很多,实际使用过程中并不是所有的都需要,VideoCodec里面只提取出来本项目使用的文件,并进行分类。
  • 项目对FFmpegDemuxer.h进行了修改,增加了int GetParam(int &fps,int &bitrate)函数,获取视频帧率和码流,在编码中使用,这样的目的是编码时保留图像原始帧率和码流参数。

技术交流

About

Nvidia video hard decoding, rendering, soft/hard encoding, and writing to MP4 file ; Nvidia视频硬解码、渲染、软/硬编码并写入MP4文件

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published