創(chuàng)建上傳頁面
事實上,創(chuàng)建一個上傳視頻的HTML頁很簡單,如下:
addmovie.html
<html> <body> <form enctype="multipart/form-data" method="post" action="upload.php"> <input type="hidden" name="MAX_FILE_SIZE" value="300000" /> <table> <tr><td>Title</td><td><input type="text" name="title"></td></tr> <tr><td>Movie</td><td><input type="file" name="movie"></td></tr> </table> <input type="submit" value="Upload" /> </form> </body> </html>
這個頁面的表單提交到 upload.php 頁,upload.php 會處理視頻,抓取縮略圖并將數(shù)據(jù)添加到數(shù)據(jù)庫中。頁面代碼如下:
upload.php
<html><body> <?php require "DB.php"; function converttoflv( $in, $out ) { unlink( $out ); $cmd = "ffmpeg -v 0 -i $in -ar 11025 $out 2>&1"; $fh = popen( $cmd, "r" ); while( fgets( $fh ) ) { } pclose( $fh ); } function getthumbnail( $in, $out ) { unlink( $out ); $cmd = "ffmpeg -i $in -pix_fmt rgb24 -vframes 1 -s 300x200 $out 2>&1"; $fh = popen( $cmd, "r" ); while( fgets( $fh ) ) { } pclose( $fh ); } function flv_import( $upfile, $fname, $title ) { $fname = preg_replace( '/\..*$/', '', basename( $fname ) ); $flvpath = "$fname.flv"; $thumbpath = "$fname.gif"; converttoflv( $upfile, "movies\\$flvpath" ); getthumbnail( $upfile, "movies\\$thumbpath" ); $dsn = 'mysql://root@localhost/movies'; $db =& DB::connect( $dsn ); if ( PEAR::isError( $db ) ) { die($db->getMessage()); } $sth = $db->prepare( 'INSERT INTO movies VALUES ( 0, ?, ?, ?, ?, ? )' ); $db->execute( $sth, array( $title, $flvpath, $thumbpath, 300, 200 ) ); } flv_import( $_FILES['movie']['tmp_name'], $_FILES['movie']['name'], $_POST['title'] ); ?> File sucessfully uploaded </body></html>
函數(shù)flv_import()是腳本代碼的核心部分,它調(diào)用了converttoflv() 函數(shù)和 getthumbnail()函數(shù)來將視頻轉(zhuǎn)換成Flash Video文件和創(chuàng)建縮略圖。然后它向數(shù)據(jù)庫中添加了有關(guān)視頻的一些數(shù)據(jù)。有關(guān)FLV和縮略圖的功能都使用了 ffmpeg 中的命令行來處理視頻。
當我打開addmovie.html 頁面的時候,我做了一下截圖,見圖1.
圖1.上傳視頻的頁面
現(xiàn)在你就可以點擊 Upload 按鈕上傳視頻到服務(wù)器進行處理了。
upload.php 頁面中的腳本只是一些很基礎(chǔ)的代碼。如果向?qū)⑵渫度胧褂,你需要添加一些錯誤驗證代碼。這些腳本最大的問題就是處理較大的視頻文件的能力。較大的視頻文件需要轉(zhuǎn)換很長時間,用戶也需要等待很長時間才行。
為了能夠支持大的視頻文件(比如長于10秒鐘的視頻),我建議你簡單地將視頻復(fù)制到一個文件夾中,然后通知用戶該視頻稍后將會出現(xiàn)在網(wǎng)站上。然后你可以編寫一段腳本來處理該文件夾中的視頻。
這里我覺得有必要說明一下為什么要把視頻轉(zhuǎn)換成Flash Video。當然,在Flash Player中我需要使用Flash Video來觀看視頻。但是不只是那樣,如果我不進行轉(zhuǎn)換的話就要顯示每個視頻的播放器是什么,而且還要幫助用戶找到并安裝適用于他們系統(tǒng)的播放器。這將需要大量的工作。將所有的視頻轉(zhuǎn)換成Flash Video的最大優(yōu)點——同時也是使用Flex編寫的Flash Player的最大優(yōu)點——就是它幾乎可以在任何地方運行。
下一步就是創(chuàng)建一個類似YouTube的簡單的 HTML/Flash 界面。
出處:藍色理想
責(zé)任編輯:moby
上一頁 使用Flex和PHP創(chuàng)建自己的視頻應(yīng)用 [1] 下一頁 使用Flex和PHP創(chuàng)建自己的視頻應(yīng)用 [3]
◎進入論壇RIA設(shè)計與應(yīng)用版塊參加討論
|