替换Python的imageio包中自带的ffmpeg以支持GPU编解码加速

20 篇文章 8 订阅
13 篇文章 5 订阅

前言

imageio是一个比较好用的用于读写图片数据的Python library,在处理视频数据时是以imageio_ffmpeg为backend的。

在这里插入图片描述

问题

当使用imageio读写视频时,其会调用imageio_ffmpeg包以使用ffmpeg作为backend。而其自带的ffmpeg只支持CPU,不支持GPU编解码加速。

在这里插入图片描述

深入到imageio_ffmpeg所在位置,例如~/.conda/envs/env_name/lib/python3.7/site-packages/imageio_ffmpeg/binaries,可以看到目录下有一个名为“ffmpeg-linux64-v4.2.2”的二进制文件,这就是预编译好的FFmpeg。

如果需要支持GPU加速,则需要我们先安装好GPU版FFmpeg(见参考资料[2]),然后在上述目录建立GPU版FFmpeg的软链接。

# 切换到目录
cd ~/.conda/envs/env_name/lib/python3.7/site-packages/imageio_ffmpeg/binaries

# 备份imageio_ffmpeg自带的cpu版本ffmpeg
cp ffmpeg-linux64-v4.2.2 ffmpeg-linux64-v4.2.2-bak

# 建立gpu版本ffmpeg软链接
ln -s /usr/bin/ffmpeg ffmpeg-linux64-v4.2.2

在这里插入图片描述

使用

import imageio

video_path = 'test.mp4'
video_reader = imageio.get_reader(video_path, 'ffmpeg', ffmpeg_params=['-c:v', 'h264_cuvid'])

frame_list = []
for i, frame in enumerate(video_reader):
    frame_list.append(frame)

imageio.mimsave('out.mp4', frame_list)

在这里插入图片描述

参考资料

[1] imageio - Python library for reading and writing image data
[2] Ubuntu上安装ffmpeg-cuda加速
[3] github - imageio/imageio
[4] imageio · PyPI
[5] Ubuntu上安装ffmpeg
[6] ffmpeg: you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to. · Issue #294 · imageio/imageio

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: "no matching distribution found" 意思是找不到匹配的安装包。这通常表示你试图安装的包或版本不存在或者与你当前环境不兼容。如果是在运行 pip 安装命令时出现这个错误,请检查你输入的包名和版本号是否正确,并确保网络连接是正常的。 ### 回答2: "No matching distribution found"是一种出现在Python包安装中的错误信息。它通常表示用户所指定的包版本与PyPI(即Python Package Index)上当前可用的版本不一致,前者可能已经停止维护了或者根本不存在。这时候,Python解释器就无法从PyPI中找到对应的包文件进行下载和安装。 解决这一问题的方法有以下几种: 1.检查输入的包名称是否正确。有时候用户可能会拼写错误或者大小写不一致,从而导致包找不到。最好是直接从官方站点或者PyPI上找到正确的包名,在命令行中手动输入。 2.检查包版本号是否相符。如果用户指定的版本号高于PyPI上当前可用的最新版本号,就会出现找不到的情况。此时,可以考虑降低版本号或者等待PyPI更新。 3.尝试使用Python虚拟环境。虚拟环境可以在隔离的环境中进行包的安装和管理,避免与主系统出现冲突。当出现"No matching distribution found"时,可以先在虚拟环境中进行尝试,看看是否能够解决问题。 4.使用第三方包管理工具。有很多第三方的包管理工具可以用来代替pip进行包的安装和管理,其中比较常用的有conda和easy_install。对于那些难以用pip安装的包,这些工具可能能够解决问题。 总之,在出现"No matching distribution found"错误时,最好是先检查输入的包名和版本号是否正确,然后尝试使用虚拟环境或者第三方工具,以解决问题。 ### 回答3: "No matching distribution found"是Python导包时常见的错误提示,它通常出现在pip install之类的命令中。该错误提示表示在PyPI(Python Package Index)中没有找到与要安装的库的版本相匹配的发行版本。常见的错误情况包括: 1. 要安装的库不存在或拼写错误。您可以通过检查拼写或库名称是否正确来解决此问题。 2. 要安装的库版本过于老旧或已经过时不再维护,无法在PyPI上找到与您的Python版本相匹配的发型版本。通常这种情况下会有如下提示:unsupported Python version(s)。 3. 您的网络连接出现故障,导致无法访问PyPI服务器。您需要检查您的网络连接是否正常或者更换一个可用的网络环境。 为了解决"No matching distribution found"问题,您可以尝试以下几种解决方案: 1. 检查拼写和库名称是否正确。确保输入的名称和大小写都是准确的。 2. 如果是库版本过于老旧或不再维护的问题,您可以尝试升级您的Python版本或使用其他替代库。 3. 您也可以尝试手动下载要安装的库的源代码,然后使用python setup.py install命令将其安装在您的系统中。 4. 如果网络连接出现故障,您需要检查您的网络连接是否正常或者更换一个可用的网络环境。 总之,要解决"No matching distribution found"问题,您需要首先检查拼写和库名称是否正确,然后检查Python版本是否过于老旧,最后检查您的网络连接是否正常。如果以上方案都无法解决您的问题,您可以去GitHub等站点上找到更多解决方案或寻求高手帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TracelessLe

❀点个赞加个关注再走吧❀

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值