2010-04-21 82 views
0

我在想,如何從Flash視頻文件中提取縮略圖,然後將其顯示在列表框中。從.flv中提取縮略圖

該列表框假設有很多視頻,我需要通過actionscript以編程方式提取縮略圖。

Flash播放器將在網絡上,並且提取必須在swf文件加載時發生,因此,該方法不能太花時間。

我該如何繼續下去?這甚至有可能嗎?

TNX提前

回答

0

最好的解決辦法是generate the thumbnail server side並沿網址到該圖像發送。 如果您想要「動態地」執行縮略圖,則需要首先加載視頻,至少直到您希望截取屏幕截圖爲止,這不會特別快。

+0

我明白了。我要在這個網站上使用PHP,所以任何想法如何用PHP做到這一點? – mana 2010-04-21 12:01:51

1

您可以使用ffmpeg。也許調用一個腳本將是最好的方法。

+0

嗯。有沒有解釋如何用ffmpeg做這件事的簡單指南? – mana 2010-04-21 12:03:29

+0

你只需運行一個命令(如果你需要一些複雜的命令批處理)。如上所述,例如,您可以使用PHP的exec命令並將圖像路徑存儲在數據庫中。之後通過使用URL加載它們。 – thelost 2010-04-21 12:06:47

1

你應該看看FFMpeg--利用它你可以從視頻中提取縮略圖(還有很多很酷的東西)。一旦你的服務器上安裝了它,你只需通過PHP的exec()函數傳遞命令即可。

例如:

$cmd = "ffmpeg -i you_video.flv -f image2 -vframes 1 -ss 00:00:01 -y -s 100x100 my_video_thumb.png"; 

exec($cmd, $output, $return); 

Where: 

-i is your specify the input file 
-f is to force the output format, this case "image2" since we are generating an image 
-vframes video frames we want to record in the snapshot, only one 
-ss starting time of the snapshot 
-y overwrite any existing file with the same name 
-s size/dimensions of the output image 

有關於如何在服務器上安裝FFmpeg的,如果你google一下,你會發現噸信息的一些很好的教程。這是一個起點http://vexxhost.com/blog/2007/03/03/installing-ffmpeg-ffmpeg-php-mplayer-mencoder-flv2tool-lame-mp3-encoder-libogg-%E2%80%93-the-easy-way/

乾杯, M.

+0

這是否意味着我不能簡單地將ffmpeg.exe放在我的服務器上,然後調用它?是否有必要安裝它? – Laserson 2010-04-24 19:40:54

+0

如果你在一個窗口盒子上,把exe文件放在其他一些DLL文件中,你就可以下載了,你可以從http://ffmpeg.arrozcru.org/builds/下載win32的二進制文件,你可能想檢查一些其他的東西out http://www.ehow.com/how_4716678_install-ffmpeg-windows.html – falomir 2010-04-26 16:09:20

0

如果你不想使用的ffmpeg我相信你可以做到以下幾點:

加載主SWF,

每個FLV文件,

  • 加載FLV ;

  • 發送flv到所需的時間;

  • 創建一個新的BitmapData對象;

  • 將flv的內容繪製到
    使用繪製方法的位圖數據;

  • 將BitmapData添加到位圖對象 並將其顯示在列表框中;

分發完畢後展示的主要應用

,做事情simmilar對此的形式給出,但它使用中cuePoints觸發圖紙可以在這裏找到:

http://blog.flexexamples.com/2007/08/03/creating-flv-cuepoint-thumbnails-using-the-bitmap-and-bitmapdata-classes/

一更重要的是,爲了操縱flvs(繪製方法起作用),文件必須駐留在您自己的域中,或者在根服務器上應該有一個跨域文件,該文件包含flv,其中聲明允許您的域訪問

實施例: http://api.flickr.com/crossdomain.xml