1

フレームを抽出してoutput.jpgとして保存しようとしましたサーバー側:

f = "ffmpeg -vframes 1 -y -ss "+time+" -i ./media/somemov.mp4 ./media/output.jpg"
subprocess.call(f, shell=True)

そしてクライアント側で使用されます:

getImage(noOfFrame);  //send the request for call the ffmpeg function from views.py

document.getElementById("main").style.backgroundImage="url(http://localhost:8000/media/output.jpg#"+ new Date().getTime();+")";

しかし、遅すぎます。DIV は常に古いイメージを表示するため、作成するイメージには時間がかかります。たとえば、画像 3 が必要で、DIV には 2 がなく、画像 4 が必要で、div には 3 がありません。

ビデオからフレームを抽出し(ffmpegで)、output.jpgファイルを作成せずにPythonに送信する方法はありますか?

画像データを取得し、サーバー (django) から Web ページに送信し、DIV の背景画像として設定します。

「純粋なデータ送信」ソリューションは私のソリューションよりも優れていますか?

手伝ってくれてありがとう。

4

1 に答える 1

1

短い答え:いいえ。

ただし、これを行うより良い方法があります。

  1. ビデオは、特定のタイムスタンプでサムネイル/スクリーングラブの作成のフラグが立てられています
  2. django は古いサムネイルが存在する場合は削除します
  3. django はhttp://pypi.python.org/pypi/django-celeryを使用してイベントをキューに入れます(イベントは実際のサムネイル作成イベントです)
  4. イベントがキューにある間、サムネイルが存在しないため、プレースホルダー画像がユーザーに表示されます
  5. サムネイルが終了するようにイベント キューをポーリングする DIV の javascript/ajax。
  6. イベントが終了すると、JavaScript は新しく作成されたサムネイルをリアルタイムで取得し、DIV の CSS プロパティを変更します
于 2012-09-11T18:47:06.970 に答える