« HPタブレットPC tm2 タッチパッドでスクロール問題 | トップページ | 複数のモニターをつかった後、アプリが画面外で開く »

2011年4月14日 (木)

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」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« HPタブレットPC tm2 タッチパッドでスクロール問題 | トップページ | 複数のモニターをつかった後、アプリが画面外で開く »

しろののツイッタータイムライン

  • ツイッターは5つ目も凍結されました。6つ目での復活も不可能。なのでnoteに注力しています。

    と思ったら、イーロン・マスクの買収が公になってアカウントが復活できました。ありがとうマスク。

    トランプ関連記事の一覧リスト

オススメたち

2024年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

はてブ

無料ブログはココログ