NVIDIA 推出了适用于 Python 的开源视频处理框架“VideoProcessingFramework”(VPF)。据悉,VPF 是一组开源的 C ++ 库和Python绑定,可与其封闭源代码 Codec SDK 进行交互。该框架的功能是简化从 Python 开发 GPU 加速视频编码/解码的过程。 VPF 利用 NVIDIA Video Codec SDK 来提高灵活性和性能,并为开发人员提供 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
相关文章
NVIDIA将开放G-Sync支持 AMD显卡也可在G-Sy
11-26NVIDIA 宣布将停止维护CUDA for macOS
11-25NVIDIA发布GTX 1650 Super显卡:性能翻倍 性
11-24在Win10企业版系统中更新NVIDIA显卡驱动
11-19NVIDIA将在下一代显卡中长期保持领先
11-07AMD 19.11.1、NVIDIA 441.12驱动发布支持《
11-06NVIDIA GeForce Game Ready 441.08 WHQL版
10-30NVIDIA GTX 1660 SUPER显卡GDDR6显存猛提速
10-30Nvidia发布Shield TV Pro和Shield TV 支持
10-29NVIDIA WHQL 431.36发布:新增支持RTX SUPER
07-10网友评论(共有 0 条评论)