为了账号安全,请及时绑定邮箱和手机立即绑定

skvideo + ffmpeg:无法设置二进制文件的路径

skvideo + ffmpeg:无法设置二进制文件的路径

HUX布斯 2023-06-20 17:22:10
出于某种原因,设置 ffmpeg 二进制文件的路径并不完全有效。虽然它看起来像它应该的那样工作:import skvideo.ioimport skvideo.datasetsffmpeg_path = "C:/Users/xyz/ffmpeg-4.3.1-win64-static/bin/"skvideo.setFFmpegPath(ffmpeg_path)print("FFmpeg path: {}".format(skvideo.getFFmpegPath()))print("FFmpeg version: {}".format(skvideo.getFFmpegVersion()))>>> FFmpeg path: C:/Users/xyz/ffmpeg-4.3.1-win64-static/bin/>>> FFmpeg version: b'4'.b'3'.b'1'之后直接运行这些行不会:videodata = skvideo.io.vread(skvideo.datasets.bigbuckbunny())print(videodata.shape)[...]>>> File "C:\Users\xyz\Anaconda3\envs\cv_env\lib\site-packages\skvideo\io\io.py", line 133, in vread  assert _HAS_FFMPEG, "Cannot find installation of real FFmpeg (which comes with ffprobe).">>> AssertionError: Cannot find installation of real FFmpeg (which comes with ffprobe).无法弄清楚,为什么它设置不正确...
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

显然你必须设置路径然后再次导入包:

import skvideo


ffmpeg_path = "C:/Users/xyz/ffmpeg-4.3.1-win64-static/bin/"

skvideo.setFFmpegPath(ffmpeg_path)


import skvideo.datasets

import skvideo.io


print("FFmpeg path: {}".format(skvideo.getFFmpegPath()))

print("FFmpeg version: {}".format(skvideo.getFFmpegVersion()))


videodata = skvideo.io.vread(skvideo.datasets.bigbuckbunny())

print(videodata.shape)


>>> FFmpeg path: C:/Users/xyz/ffmpeg-4.3.1-win64-static/bin/

>>> FFmpeg version: b'4'.b'3'.b'1'

>>> (132, 720, 1280, 3)


查看完整回答
反对 回复 2023-06-20
?
FFIVE

TA贡献1797条经验 获得超6个赞

Ubuntu 也没有附带ffmpeg. 一旦ffmpeg(它主要作为一个独立的二进制文件,与 python 或skvideopython 包本身没有任何关系)被下载使用sudo apt-get install ffmpeg,它默认安装ffmpegffprobe,ffplay等等/usr/bin/,这反过来解决了问题。



查看完整回答
反对 回复 2023-06-20
  • 2 回答
  • 0 关注
  • 278 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信