2009-11-04 17 views
6

C#で動画のサムネイル画像を作成することはできますか?サムネイル動画C#

リトルアップデート:Flexを使用してビデオを表示しているので、C#でFLVビデオのサムネイルイメージが必要になります。そして、はい、いくつかのライブラリへのリンクが役に立つでしょう。

+0

はいがあなたの質問への短い答えになり – sshow

答えて

7

私は私の頭の上から二つの選択肢を考えることができます。

  1. は、サムネイルを生成するために、ffmpegのように、外部ツールを使用してください。これはおそらくこの問題の最も一般的に実装された解決策です。
  2. FLVファイルを解析し、ファイルを最初のI Frameの末尾にのみ送信します。 (あなたは時間マークにより、FLVの中央に求めることを可能にするコードで解析ロジックを見つけることができます
+0

FFMPEGは私が見つけることができる唯一の解決策です。そこにいくつかの.NETライブラリは、FFMPEGの周りの管理ラッパーを提供していますが、私はそれらを使用する方法についての任意のドキュメントを見つけることができませんでした。私はあなたが思いつく解決策を聞くことに興味があります! –

+0

私はffmpegにシェルし、出力を解析します。それは私のためにうまく動作し、それが聞こえるかもしれないほど複雑でもハッキリでもありません。私はffmpegのC APIについて読んだが、それはあまりにも多くの努力のように思える。 –

4

これを行うために使用できるオープンソースライブラリがあります。 OpenCVの管理された.NETラッパーである「コンピュータビジョン」ライブラリOpenCVDotNetをチェックしてください。 Here's a link to a tutorialあなたは役に立つかもしれません。

+0

私の第一印象それはaviだけをサポートしているということです...そして、私はFLVをサポートする必要があります。しかし、私はこれを確かめるためにチェックしなければならないでしょう。 –

1

これは動作します。

ShellFile thumbNail = ShellFile.FromFilePath(<fullpath and filename>); 
Bitmap thumbSmall = thumbNail.Thumbnail.MediumBitmap; 
Bitmap thumbLarge = thumbNail.Thumbnail.LargeBitmap; 
videoThumb_Small.Images.Add(thumbSmall); 
videoThumb_Large.Images.Add(thumbLarge); 

「videoThumb _ ?????」= 。。イメージリスト(ここで、再び表示する画像の大きさを制御するために)地獄のように遅い異なるMIME形式を検索するが、同じ種類の十分な速さはニーズ:

using Microsoft.WindowsAPICodePack.Shell; 
using Microsoft.WindowsAPICodePack; 

をし、あなたがnugetパッケージからMicrosoft.WindowsAPICodePackを得ることができます同じ名前。FFMpegについては、Vlc.Dotnet彼らはWindowsネイティブの横にある同じ結果とaXMediaPlayer(heh)を得る前に、FFmpegは再び5億行を必要とします。

例、あなたも下位項目のようなもので、リストビューを使用している場合:

for(int mememe = 0; mememe < stuff_counter; mememe++) 
{ 
listview1.Items.Add("strings", mememe).SubItems.Add("strings" + mememe.ToString()); 
} 

その後、イメージリスト

から正しいインデックス番号を読んでいましたが