嗨,經過我半天的折騰,結果沒折騰出來。ffmpeg命令在此,可直接在cmd下執行
ffmpeg -i baby.mp4 -vf select='eq(pict_type\,I)' -vsync 2 -f image2 keyframe-%02d.jpeg
但我的目的不限於此啊,我要放在python腳本中執行啊,結果調用subprocess及shlex出錯,主要原因是上面命令中-f的參數有空格
這讓我矇蔽,它爲啥一定要倆參數??
另外有其他搜索結果說pyav庫可以直接得到,然而現實是,這個玩意需要安裝VS,臥槽,這就沒法玩了,依賴庫多的註定不能流行。
Collecting av
Downloading av-7.0.1.tar.gz (2.3 MB)
|████████████████████████████████| 2.3 MB 177 kB/s
Building wheels for collected packages: av
Building wheel for av (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: 'd:\python36\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ggca1\\AppData\\Local\\Temp\\pip-install-f8ye098_\\av\\setup.py'"'"'; __file__='"'"'C:\\Users\\ggca1\\AppData\\Local\\Temp\\pip-install-f8ye098_\\av\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\ggca1\AppData\Local\Temp\pip-wheel-0ryqelsx'
cwd: C:\Users\ggca1\AppData\Local\Temp\pip-install-f8ye098_\av\
Complete output (32 lines):
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\av
copying av\datasets.py -> build\lib.win-amd64-3.6\av
copying av\deprecation.py -> build\lib.win-amd64-3.6\av
copying av\__init__.py -> build\lib.win-amd64-3.6\av
copying av\__main__.py -> build\lib.win-amd64-3.6\av
creating build\lib.win-amd64-3.6\av\audio
copying av\audio\__init__.py -> build\lib.win-amd64-3.6\av\audio
creating build\lib.win-amd64-3.6\av\codec
copying av\codec\__init__.py -> build\lib.win-amd64-3.6\av\codec
creating build\lib.win-amd64-3.6\av\container
copying av\container\__init__.py -> build\lib.win-amd64-3.6\av\container
creating build\lib.win-amd64-3.6\av\data
copying av\data\__init__.py -> build\lib.win-amd64-3.6\av\data
creating build\lib.win-amd64-3.6\av\filter
copying av\filter\__init__.py -> build\lib.win-amd64-3.6\av\filter
creating build\lib.win-amd64-3.6\av\sidedata
copying av\sidedata\__init__.py -> build\lib.win-amd64-3.6\av\sidedata
creating build\lib.win-amd64-3.6\av\subtitles
copying av\subtitles\__init__.py -> build\lib.win-amd64-3.6\av\subtitles
creating build\lib.win-amd64-3.6\av\video
copying av\video\__init__.py -> build\lib.win-amd64-3.6\av\video
running build_ext
running config
writing build\temp.win-amd64-3.6\Release\include\pyav\config.h
running cythonize
building 'av.buffer' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
----------------------------------------
ERROR: Failed building wheel for av
我也在服務器試了,也是不行,總有一樣的坑在。
Collecting av
Downloading av-7.0.1.tar.gz (2.3 MB)
|████████████████████████████████| 2.3 MB 177 kB/s
Building wheels for collected packages: av
Building wheel for av (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: 'd:\python36\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ggca1\\AppData\\Local\\Temp\\pip-install-f8ye098_\\av\\setup.py'"'"'; __file__='"'"'C:\\Users\\ggca1\\AppData\\Local\\Temp\\pip-install-f8ye098_\\av\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\ggca1\AppData\Local\Temp\pip-wheel-0ryqelsx'
cwd: C:\Users\ggca1\AppData\Local\Temp\pip-install-f8ye098_\av\
Complete output (32 lines):
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\av
copying av\datasets.py -> build\lib.win-amd64-3.6\av
copying av\deprecation.py -> build\lib.win-amd64-3.6\av
copying av\__init__.py -> build\lib.win-amd64-3.6\av
copying av\__main__.py -> build\lib.win-amd64-3.6\av
creating build\lib.win-amd64-3.6\av\audio
copying av\audio\__init__.py -> build\lib.win-amd64-3.6\av\audio
creating build\lib.win-amd64-3.6\av\codec
copying av\codec\__init__.py -> build\lib.win-amd64-3.6\av\codec
creating build\lib.win-amd64-3.6\av\container
copying av\container\__init__.py -> build\lib.win-amd64-3.6\av\container
creating build\lib.win-amd64-3.6\av\data
copying av\data\__init__.py -> build\lib.win-amd64-3.6\av\data
creating build\lib.win-amd64-3.6\av\filter
copying av\filter\__init__.py -> build\lib.win-amd64-3.6\av\filter
creating build\lib.win-amd64-3.6\av\sidedata
copying av\sidedata\__init__.py -> build\lib.win-amd64-3.6\av\sidedata
creating build\lib.win-amd64-3.6\av\subtitles
copying av\subtitles\__init__.py -> build\lib.win-amd64-3.6\av\subtitles
creating build\lib.win-amd64-3.6\av\video
copying av\video\__init__.py -> build\lib.win-amd64-3.6\av\video
running build_ext
running config
writing build\temp.win-amd64-3.6\Release\include\pyav\config.h
running cythonize
building 'av.buffer' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
----------------------------------------
ERROR: Failed building wheel for av
有的說用conda安裝,抱歉我的conda安裝後它自己就死了,現在都無法解決,而且這個問題誰都沒法解決,之前死磕tf安裝的時候有。
Traceback (most recent call last):
File "/home/./anaconda3/bin/conda", line 7, in <module>
from conda.cli import main
ModuleNotFoundError: No module named 'conda'
好好,我們暫且假設上面能運行,能夠提取到幀或者index,然後呢?再運行其他庫讀取一遍幀/視頻,這不是浪費時間嗎??
這不是扯淡嗎??都不能一次性解決嗎?有,pyav庫,然而這個庫沒法玩,等於沒說。真是夠了。
考慮到也有一個其他庫,不如問問,issue is here,
有沒有大佬給點建議或者好的解決方法啊,多謝。
另外有相關問題可以加入QQ羣討論,不設微信羣
QQ羣:868373192
語音圖像視頻深度-學習羣