web-dev-qa-db-ja.com

複数の形式のビデオのサムネイル?

長年にわたってさまざまな形式(AVI、WMV、MOV、RealPlayer)で作成されたイントラネットトレーニングビデオがあり、プレビュー機能のようなものを提供したいと考えています。シートビデオの数秒ごとにユーザーに画像を見せることができます。このようなものを作成できる簡単な画像ツールはありますか?

プラットフォームにとらわれないことは素晴らしいことですが、それは1回限りです(現時点では、笑)。したがって、Windows、Mac、またはLinuxは問題ありません。ありがとう。

4
artlung

pythonでこれを簡単に行うべきだと思ったので、このサイトで「python video thumbnail」を検索すると次のようになります。

http://notbrainsurgery.livejournal.com/29773.html

そこで提供されているサワーコードを試してみてください...

3
mbrochh

ビデオシステムFFMPEGの聖杯を見逃すことはできません。それはあなたがオンラインビデオで必要とするかもしれないことのほとんどすべてをします-複数のフォーマットで取り、別のもの、サムネイルなどに変換します。

サムネイルの簡単なコマンドラインを次に示します。 http://blog.prashanthellina.com/2008/03/29/creating-video-thumbnails-using-ffmpeg/

他のすべての機能については、他にも多くのツールがあります。

2
bpeterson76

Stack Overflowでこれを行う方法については既に答えました here ffmpegとPHPを使用します。

コード中心の答えは申し訳ありませんが、バッチプロセスでこれを行うには、実際のコードを記述することで最も簡単に行えます。

/**
* ExtractThumb, extracts a thumbnail from a video
*
* This function loads a video and extracts an image from a frame 4 
* seconds into the clip
* @param $in string the input path to the video being processed
* @param $out string the path where the output image is saved
*/
function ExtractThumb($in, $out)
{
    $thumb_stdout;
    $errors;
    $retval = 0;

    // Delete the file if it already exists
    if (file_exists($out)) { unlink($out); }

    // Use ffmpeg to generate a thumbnail from the movie
    $cmd = "ffmpeg -itsoffset -4 -i $in -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 $out 2>&1";
    exec($cmd, $thumb_stdout, $retval);

    // Queue up the error for processing
    if ($retval != 0) { $errors[] = "FFMPEG thumbnail generation failed"; }

    if (!empty($thumb_stdout))
    {
        foreach ($thumb_stdout as $line)
        {
            echo $line . "\n";
        }
    }

    if (!empty($errors))
    {
        foreach ($errors as $error)
        {
            echo $error . "\n";
        }
    }
}

それ以上のクロスプラットフォームは得られません。

フラグの内訳は次のとおりです。

  • -itsoffsetフラグは、スナップショットが取られるビデオ内の時間です
  • -vcodecは出力タイプです(pngからpngへの変更など)。
  • -vframesが1に設定されているのは、1つのフレーム(画像)のみを抽出しているためです
  • -deinterlaceを追加する必要がある場合もあります

それについてです。それよりもずっと簡単になりません。ムービーに対して複数のスクリーンショットを作成している場合は、-itsoffsetフラグを変更するだけです。それ以外は、より良いエラー情報を追加するか、出力を抑制することを選択しない限り、完全なパッケージです。

1
Evan Plaice

Flowplayer (文書化されており、多くの例があります)または似たようなものが、編集または保守が必要なスニペットとしてより良いソリューションであると思います。

FlowPlayerが正しく設定されると、完全なビデオをロードせずにサムを提供できます。これを設定するのは少し難しいですが、動作したら、しっかりしたマルチプラットフォームのソリューションが得られます。 (そして、親指をクリックすると、ビデオが再生されます;-))

Flowplayerを選択する場合は、 video4all (代替としてflowplayerでhtml5を使用)および flowplayer-plugins も確認する必要があります。

0
fwaechter