分类

Win10专业版

Win10纯净版

当前位置:Win10之家 > 资讯

NVIDIA 推出了适用于 Python 的开源视频处理框架

作者:    来源:    日期:2019-12-18

  NVIDIA 推出了适用于 Python 的开源视频处理框架“VideoProcessingFramework”(VPF)。据悉,VPF 是一组开源的 C ++ 库和Python绑定,可与其封闭源代码 Codec SDK 进行交互。该框架的功能是简化从 Python 开发 GPU 加速视频编码/解码的过程。 VPF 利用 NVIDIA Video Codec SDK 来提高灵活性和性能,并为开发人员提供 Python 固有的易用性。

NVIDIA 推出了适用于 Python 的开源视频处理框架

  实际上,尽管 Python 不是性能最高的语言,但它却是一种易于使用的语言。并且在 NVIDIA 决定发布此视频处理框架之后,相当于在现有 Video Codec SDK C ++ 堆栈周围的 Python wrapper,都将用于在 Kepler 及更高版本上基于 GPU 的视频编码/解码。

  因此,在利用基于 GPU 的高性能视频加速的同时,用户最终获得了易于阅读/编写的代码。

  该代码在 GitHub 上可作为NVIDIA 的 VideoProcessingFramework 获得。

  此外,在介绍 VPF的博客内容中,开发人员还提供了一个简短的 Python 代码示例,该示例使用 PyNvCodec 模块显示 Python 中的视频转码。

  importPyNvCodecasnvc gpuID=0 encFile="big_buck_bunny_1080p_h264.mov" xcodeFile=open("big_buck_bunny_1080p.h264","wb") nvDec=nvc.PyNvDecoder(encFile,gpuID) nvEnc=nvc.PyNvEncoder({'preset':'hq','codec':'h264','s':'1920x1080'},gpuID) whileTrue: rawSurface=nvDec.DecodeSingleSurface() #Decoderwillreturnzerosurfaceifinputfileisover; ifnot(rawSurface.GetCudaDevicePtr()): break encFrame=nvEnc.EncodeSingleSurface(rawSurface) if(encFrame.size): frameByteArray=bytearray(encFrame) xcodeFile.write(frameByteArray) #Encoderisasynchronous,soweneedtoflushit encFrames=nvEnc.Flush() forencFrameinencFrames: encByteArray=bytearray(encFrame) xcodeFile.write(encByteArray)

  参考消息:

  https://devblogs.nvidia.com/vpf-hardware-accelerated-video-processing-framework-in-python/

  https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-Video-Process-Framework

推荐下载