2011-04-17 137 views
2

我想模仿bing視頻預覽功能,用縮略圖預覽,然後onMouseOver,加載和播放視頻文件。我打算使用VideoJS(html5 + flash)進行視頻播放。我需要使用ffmpeg來製作這些視頻文件。ffmpeg編碼像視頻預覽

如何創建一個僅包含視頻的mp4預覽,其中包含完整剪輯的每隔一分鐘的1秒,並使用php + ffmpeg命令行將分辨率縮小到固定寬度(保持縱橫比,最好是縮放剪裁) ?

我假設它可以沿着剪切1s剪輯的方式完成,然後合併較小的剪輯,並重新編碼爲最終重新縮放輸出。

* 編輯:使用ffmpeg是一個設計要求。拉出1s剪輯應該相當容易,但將它們結合起來似乎與ffmpeg有些複雜。我不想騎自行車縮略圖,我想要一個包含多個1s剪輯的視頻預覽。例如。以秒爲單位的運行時間:100-101和200-201組合在高度壓縮的剪輯中。我要求提供一個命令行示例,說明如何以高效的方式執行此操作。

回答

0

我設法做到這一點,通過拉出1s剪輯,並將它們轉換爲MPEG。然後將這些mpeg文件合併成一個文件。然後將直接mpeg文件轉換爲mp4

0

在Windows(或葡萄酒)中執行此操作的一種方法是使用Avisynth腳本。這將允許您一步完成所有您想要的轉換。這是一個小會兒,因爲我用的Avisynth而是一個非常簡單的腳本可能類似於:

DirectShowSource("C:\file\to\encode.avi", audio=false) # Or another source filter 
SelectRangeEvery(1440, 24) # outputs 24 frames every 1440 frames 
BilinearResize(320,240) # resize to your desired resolution 
Crop(...) # crop to reach desired aspect ratio 

這可以擴展到支持各種幀速率和寬高比,而不是硬編碼的一切。生成的.avs文件然後可以用作ffmpeg的輸入文件,只要它已經用--enable-avisynth編譯。

0

我有一種方法,我認爲這會工作...

使用的ffmpeg你可以在特定的時間間隔視頻的縮略圖。

因此,我會在2秒的時間間隔內拍攝5到10張縮略圖,並將它們存儲在我的服務器上,並標識視頻的唯一名稱。

所以,當我鼠標移到我打電話,這將加載這些圖像順序功能(這使得用戶感覺到在視頻快進。)

但在這個格式,我們不能,我們什麼時候播放聲音鼠標..

我不知道這是否是好的,但我知道這會工作..

更新:

我認爲這將是更好地創建使用ffmpeg的視頻使用提取的圖像並在鼠標懸停時播放它們。這會比加載一系列圖像快得多。 ffmpeg可用於從圖像列表中創建新視頻。