【问题标题】:Cannot find installation of real FFmpeg (which comes with ffprobe)找不到真正的 FFmpeg 的安装(ffprobe 自带)
【发布时间】:2019-05-10 02:52:25
【问题描述】:

我试图将生成器安装到模型中,但出现以下错误: AssertionError: Cannot find installation of real FFmpeg (which comes with ffprobe).

我查看了 GitHub 上的许多解决方案以及 Stack Overflow 上的其他问题,但没有一个对我有用。

这是我运行的命令之一:

sudo add-apt-repository ppa:mc3man/trusty-media  
sudo apt-get update  
sudo apt-get install ffmpeg  
sudo apt-get install frei0r-plugins  

pip list也表示ffmpeg-1.4的存在

此外,我尝试强制重新安装和更新 ffmpeg,以防万一没有正确安装任何依赖项。

我还手动设置了ffmpeg的skvideo路径:

skvideo.setFFmpegPath('/usr/local/lib/python3.6/dist-packages/ffmpeg/')

返回:/usr/local/lib/python3.6/dist-packages/skvideo/__init__.py:306: UserWarning: ffmpeg/ffprobe not found in path: /usr/local/lib/python3.6/dist-packages/ffmpeg/ warnings.warn("ffmpeg/ffprobe not found in path: " + str(path), UserWarning)

顺便说一句,当我尝试安装时,它也返回此错误,我不知道该怎么办:

Get:127 http://archive.ubuntu.com/ubuntu bionic/main amd64 vdpau-driver-all amd64 1.1.1-3ubuntu1 [4,674 B]
Fetched 60.4 MB in 7s (8,769 kB/s)
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/w/wavpack/libwavpack1_5.1.0-2ubuntu1.1_amd64.deb  404  Not Found [IP: 91.189.88.149 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

我跑了apt-get update --fix-missing,但这并没有让任何事情变得更好。

有解决办法吗?

【问题讨论】:

  • 不了解您提到的所有技术,但我知道 Windows 和 ffmpeg,您必须在安装后设置环境变量才能至少从命令中访问它们提示,我猜在 Ubuntu 和使用 python 中的 ffmpeg 也是如此。我在胡乱猜测。这是 Ubuntu 中环境变量的链接askubuntu.com/questions/730/how-do-i-set-environment-variables

标签: python ubuntu ffmpeg scikit-learn google-colaboratory


【解决方案1】:

按如下操作:

  1. 导入视频

  2. skvideo.setFFmpegPath('your_environment/bin/')

  3. 导入 skvideo.io

  4. videodata = skvideo.io.vread('your_video')

重要的是要遵循顺序,不要混淆步骤。

【讨论】:

    【解决方案2】:

    对于 windows 用户,此命令有效

    conda install ffmpeg -c mrinaljain17

    【讨论】:

      【解决方案3】:

      捷径

      ffmpeg link 并解压 您可以在代码中执行此操作。 确保你把解压文件的 bin 路径放上去

       import skvideo
       skvideo.setFFmpegPath("D:/ffmpeg-20170125-2080bc3-win64-static/ffmpeg- 
       20170125-2080bc3-win64-static/bin")
      

      永久的方式

      其中一个原因可能是 ffmpeg 配置不正确,(并非总是如此)。

      第一步:

      检查ffmpeg是否可以从cmd访问,在命令行中输入ffmpeg看是否能识别该命令,如果不识别则下载link解压并添加到环境变量 路径 例如:

      D:\ffmpeg-20170125-2080bc3-win64-static\ffmpeg-20170125-2080bc3-win64-static\bin

      第 2 步:

      在命令行中使用where ffmpeg 有时它可能指向错误的文件,在我的情况下,imageMagick 已安装,并且系统正在引用该文件

      C:\Program Files\ImageMagick-7.0.8-Q16\ffmpeg.exe,

      要么删除imageMagick路径,要么放在后面

      D:\ffmpeg-20170125-2080bc3-win64-static\ffmpeg-20170125-2080bc3-win64-static\bin路径 环境变量

      第 3 步。

      关闭终端重新打开查看where ffmpeg,如果显示两个路径不用担心,但第一个路径应该是我们安装的

      ffmpeg-20170125-2080bc3-win64-static\ffmpeg-20170125-2080bc3-win64-static\bin

      如果没问题,你就可以走了

      【讨论】:

        【解决方案4】:

        对于窗户:

        1.下载ffmpeg-...-shared

        https://ffmpeg.zeranoe.com/builds/

        2.设置/bin路径

        import skvideo
        skvideo.setFFmpegPath('D:\\ProgramData\\ffmpeg\\ffmpeg-20190814-8fcc5d9-win64-shared\\bin')
        

        【讨论】:

          【解决方案5】:

          对于 windows,您必须指定 ffmpeg 路径。从这里下载适用于 windows 的 ffmpeg:https://ffmpeg.zeranoe.com/builds/

          确保下载共享版本

          (如果看到这个链接失效了,只要搜索“ffmpeg windows”就可以找到下载了)

          将其提取到任何地方(例如C:\\ffmpeg),然后将其指向 skvideo,如下所示:

          import skvideo
          skvideo.setFFmpegPath("C:\\ffmpeg") # you need this before the import
          import skvideo.io
          
          vid_data = skvideo.io.vread("data/mp4/train.mp4") # example path
          print(vid_data.shape)
          

          【讨论】:

            【解决方案6】:

            对于 windows10 用户

            import skvideo
            skvideo.setFFmpegPath('C:\ProgramData\Anaconda3\Lib\site-packages\skvideo\io')
            

            【讨论】:

            • 对我来说是 C:\Users\"user"\Anaconda3\Lib\site-packages\skvideo\io
            • 我得到C:\Python27\lib\site-packages\skvideo\__init__.py:306: UserWarning: ffmpeg/ffprobe not found in path: C:\Python27\Lib\site-packages\skvideo\io,即使该目录包含 ffmpeg.py、ffmpeg.pyc、ffprobe.py、ffprobe.pyc。可能是什么问题? Calling setFFmpegPath a second time 不再产生警告,但在调用 skvideo.io.vread 时我仍然收到 Cannot find installation of real FFmpeg (which comes with ffprobe)
            • 解决我的问题:stackoverflow.com/a/65994349/5231110import skvideo,然后是skvideo.setFFmpegPath('your_environment/bin/'),然后是import skvideo.io,按这个顺序!)
            【解决方案7】:

            在脚本顶部添加:

            import skvideo
            skvideo.setFFmpegPath('/usr/local/lib/python3.6/dist-packages/ffmpeg/')
            

            在导入skvideo.io之前必须设置FFmpeg路径,否则会被忽略。

            【讨论】:

              【解决方案8】:

              仅供参考,最好共享一个最小的笔记本,它可以重现您看到的整个问题,以阐明您到底想要做什么以及它是如何出错的。在这种情况下,您可能正在寻找以下内容:

              !apt-get install --no-install-recommends ffmpeg && pip install ffmpeg scikit-video
              
              import skvideo.io
              import skvideo.datasets
              bbb = skvideo.datasets.bigbuckbunny()
              print('bigbuckbunny is in: {}'.format(bbb))
              v = skvideo.io.vread(filename)
              print('shape is: {}'.format(v.shape))
              

              (如果您已经 apt/pip 安装了很多东西,尤其是如果您“强制”安装了各种软件包,您可能希望在 colab 中“重置所有运行时”以获得干净的 VM运行上面的)

              【讨论】:

              • 我发现在某些情况下不起作用,在这种情况下这对我有用:apt-get update && apt-get install ffmpeg
              • 更新不应该是必要的,并向我建议 apt 已被早期的笔记本代码错误配置(换句话说,我建议您尝试找出导致您描述的“情况”的原因)
              猜你喜欢
              • 1970-01-01
              • 2015-08-26
              • 2020-11-22
              • 2011-07-26
              • 2019-07-25
              • 2020-05-10
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多