您现在的位置是:首页 > 文章详情

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

日期:2019-12-18点击:656

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 中的视频转码。

 import PyNvCodec as nvc 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) while True: rawSurface = nvDec.DecodeSingleSurface() # Decoder will return zero surface if input file is over; if not (rawSurface.GetCudaDevicePtr()): break encFrame = nvEnc.EncodeSingleSurface(rawSurface) if(encFrame.size): frameByteArray = bytearray(encFrame) xcodeFile.write(frameByteArray) # Encoder is asynchronous, so we need to flush it encFrames = nvEnc.Flush() for encFrame in encFrames: 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

原文链接:https://www.oschina.net/news/112149/nvidia-open-source-vpf-for-python
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章