1

多くのオプションを試しましたが、アイデアが不足しています。ここの誰かが助けてくれることを願っていました。ビデオ(.aviまたは.wmv)からフレーム(10フレームごとなど)を抽出し、画像(できれば.jpg-ただし、他の形式でも可能)を作成するコードをPythonで記述しようとしています。私は成功したことがなく、私が試して失敗したことの代替案を提供することで、誰かが私の問題を解決するのを手伝ってくれるかどうか疑問に思っていました.

私は PyMedia を試しました (チュートリアルhttp://pymedia.org/tut/src/dump_video.py.htmlの例は機能しません - ビデオコーデックを探すときにプログラムが爆発します):

#dm= muxer.Demuxer( inFile.split( '.' )[ -1 ] )  This line does not work

  dm= muxer.Demuxer( 'avi' )  #This modified line does seem to work however

  i= 1

  inFile = "VideoTest.avi"

  f= open( inFile, 'rb' )

  s= f.read( 400000 )

  r= dm.parse( s )

  v= filter( lambda x: x[ 'type' ]== muxer.CODEC_TYPE_VIDEO, dm.streams )

  v_id= v[ 0 ][ 'index' ]

  print 'Assume video stream at %d index: ' % v_id

  c= vcodec.Decoder( dm.streams[ v_id ] )     #this is the point where it crashes.

Python用のOpenCV v2.2を試しましたが、どちらも機能しません(OpenCVのほとんどを機能させることができます-必要なCaptureFromFileの1つの関数を除いて機能しません)。この関数が機能しない理由は、Windows では動作に highGui が必要であり、何らかの理由で python と opencv が正しいディレクトリにあるにもかかわらず、highgui を見つけることができないためだと思います。また、OpenCV が正しいビデオ コーデックを見つけて適用する際に問題があることも理解しているため、どちらが問題の原因なのかわかりません。

私はpyFFMPEGを見てきましたが、その最後のビルドはバージョン2.6で、python 2.7を実行しています。

これを Windows Vista および Windows 7 マシンで実行しています。Python 2.7 および OpenCV 2.2 を C:\ にロードし、他のすべての Python パッケージ (pygames、pymedia、numpy、scipy) を C:\python27\Libs\site-packages にインストールしています。 .." 実行可能ファイルからダウンロードしてインストールしました。すべてのパッケージは Python 2.7 用にビルドされています。Path 変数には Python27 と OpenCV が含まれており、PYTHONPATH 変数があります。

アイデアや推奨事項をありがとう。

4

1 に答える 1

1

各フレームを個別の画像として抽出するために、次のことを試しました。

import cv2

file_path = "some\path\to\the\file.avi"
video_object = cv2.VideoCapture(path)

success = True
while success:
    success,frame = video_object.read()
    if success:
        cv2.imwrite(path[:-4]+"_"+str(i)+".jpg",frame)
print("Done!")

このスクリプトは、各フレームをソース ファイルと同じフォルダーに画像として保存します。これを行うのが最も効率的な方法ではないかもしれませんが、私にとってはうまくいきます! 私の文字列解析が最も推奨されていないことはわかっていますが、機能します。 video_object.read()2 つのオブジェクトを返します。1 つ目はbool読み取り操作が成功したかどうかを示すもので、2 つ目はイメージです。

私が認識していないビデオ コーデックに関する制限がある可能性があります。2013 年 11 月 7 日現在、openCV と Numpy の最新バージョンで Python 2.7 を使用しています。

于 2013-11-07T16:58:20.297 に答える