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

出于某种原因,设置 ffmpeg 二进制文件的路径并不完全有效。


虽然它看起来像它应该的那样工作:


import skvideo.io

import skvideo.datasets


ffmpeg_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).

无法弄清楚,为什么它设置不正确...


HUX布斯
浏览 177回答 2
2回答

富国沪深

显然你必须设置路径然后再次导入包:import skvideoffmpeg_path = "C:/Users/xyz/ffmpeg-4.3.1-win64-static/bin/"skvideo.setFFmpegPath(ffmpeg_path)import skvideo.datasetsimport skvideo.ioprint("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)

FFIVE

Ubuntu 也没有附带ffmpeg. 一旦ffmpeg(它主要作为一个独立的二进制文件,与 python 或skvideopython 包本身没有任何关系)被下载使用sudo apt-get install ffmpeg,它默认安装ffmpeg, ffprobe,ffplay等等/usr/bin/,这反过来解决了问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python