PyFFmpeg 2.1beta win32をWindows 7でインストール FFmpegをMinGW32/MSYSでコンパイル
XPではなんの問題もなくインストールできたのにWindows 7ではハマってしまったので覚書。
Pythonは2.6系である必要があります。たぶん。
PyFFmpeg 2.1 betaをここからダウンロードします。2.2はアルファなのでやめた。
python26/lib/site-package
に解凍します。
Pythonを起動して
from pyffmpeg import FFMpegReader
としてみる。うまく行ったらOK。
だめならばDLL関係がうまくインストールされているかを確認。
import ctypes
ctypes.CDLL('avcodec-52.dll')
のようにしてだめならばPythonからみえていない。
XPではWindows\System32にあるはず。
Windows 7ではなぜか?Windows\Systemに置かなければいけない。
avcodec-52.dll
avdevice-52.dll
avformat-52.dll
avutil-50.dll
swscale-0.dll
あたりがちゃんと入っているのにまだfrom pyffmpeg import FFMpegReaderで失敗する場合は
ここを参考にしてlibgcc_s_dw2-1.dllをダウンロードして、同様にSystemにいれる。
これでも駄目なら環境変数からパスをSystemに通す。これで解決した。
ちなみにDLLはFFmpegの公式にバイナリで置いてあるが、
なぜかこれはうまく動かない。
なので、自分でソースからコンパイルすることになる。今回はlibav-0.6.2のリリース版をつかった。
しかし、http://libav.org/general.html#SEC21に書いてあるとおりやれば大丈夫。
コンパイルの環境がない場合、ここから最新のmingw-get-instをダウンロードして、インストールする。
インストール時にはMSYSにチェックをいれる。多分Development environmentも念のためいれといた。
普通に入れば"C:\MinGW\msys\1.0\msys.bat"にあるバッチファイルを実行してMSYSのコンソールにいける。
で、libav-0.6.2を回答した場所へcdしてから、今回はDLLがほしいので--enable-sharedをつけて
./configure --enable-memalign-hack --enable-shared
としてから
make
make install
でコンパイル。うまくいくと C:\MinGW\msys\1.0\local\bin にEXEとDLLがコピーされているはず。
avcodec-52.dll
avformat-52.dll
avutil-50.dll
swscale-0.dll
あたりをWindows 7ならSystem、XPならSystem32へ移動しておしまい。
« HPタブレットPC tm2 タッチパッドでスクロール問題 | トップページ | 複数のモニターをつかった後、アプリが画面外で開く »
「Python」カテゴリの記事
- Noteの記事をPythonでバックアップしといた。(2021.05.05)
- JupyterLabでも好きな外部エディターを使いたい!(2018.05.02)
- ローカルエリア内のJupyterLabサーバーにLAN経由で接続する。(2018.05.02)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
- Juliaやってみよう。四日目。@timeでプロファイリング(2017.07.16)
« HPタブレットPC tm2 タッチパッドでスクロール問題 | トップページ | 複数のモニターをつかった後、アプリが画面外で開く »
コメント