创建上传页面
事实上,创建一个上传视频的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 会处理视频,抓取缩略图并将数据添加到数据库中。页面代码如下:
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>
函数flv_import()是脚本代码的核心部分,它调用了converttoflv() 函数和 getthumbnail()函数来将视频转换成Flash Video文件和创建缩略图。然后它向数据库中添加了有关视频的一些数据。有关FLV和缩略图的功能都使用了 ffmpeg 中的命令行来处理视频。
当我打开addmovie.html 页面的时候,我做了一下截图,见图1.
图1.上传视频的页面
现在你就可以点击 Upload 按钮上传视频到服务器进行处理了。
upload.php 页面中的脚本只是一些很基础的代码。如果向将其投入使用,你需要添加一些错误验证代码。这些脚本最大的问题就是处理较大的视频文件的能力。较大的视频文件需要转换很长时间,用户也需要等待很长时间才行。
为了能够支持大的视频文件(比如长于10秒钟的视频),我建议你简单地将视频复制到一个文件夹中,然后通知用户该视频稍后将会出现在网站上。然后你可以编写一段脚本来处理该文件夹中的视频。
这里我觉得有必要说明一下为什么要把视频转换成Flash Video。当然,在Flash Player中我需要使用Flash Video来观看视频。但是不只是那样,如果我不进行转换的话就要显示每个视频的播放器是什么,而且还要帮助用户找到并安装适用于他们系统的播放器。这将需要大量的工作。将所有的视频转换成Flash Video的最大优点——同时也是使用Flex编写的Flash Player的最大优点——就是它几乎可以在任何地方运行。
下一步就是创建一个类似YouTube的简单的 HTML/Flash 界面。
出处:蓝色理想
责任编辑:moby
上一页 使用Flex和PHP创建自己的视频应用 [1] 下一页 使用Flex和PHP创建自己的视频应用 [3]
◎进入论坛RIA设计与应用版块参加讨论
|