`
pvnz95pvnz
  • 浏览: 13008 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

像Youtube一样的flv视频网站制作 使用Flex和PHP创建自己的视频应用

 
阅读更多

  转帖:http://blog.sina.com.cn/s/blog_4beab9e20100hcjg.ht ml
  谢谢!
  英文原文:Creating MyTube with Flex and PHP
  原文地址:
  http://www.onlamp.com/pub/a/php/ ... h-flex-and-php.html
  原文作者:Jack Herrington随着宽带的普及、硬盘空间的价格持续降低以及Adobe?? Flash?? Player 和 Flash Video的实用性,视频分享在互联网上疯狂流行是不足为奇的。像Google video 和 YouTube 这样的站点是领头羊,而现在已经到处都是小型的视频分享站点了。那么,如何才能加入到潮流中去呢?如何利用像PHP, Flash和Adobe Flex?? 等技术来创建自己的视频分享网站?行动起来吧,它比你想象的要容易得多。
  本文将告诉你如何创建网站的PHP部分以及如何使用Flex框架创建一个视频播放器。要创建一个YouTube的简单版本(我们可以称它为MyTube),你需要有一些适当的工具。
  在服务器端,你需要PHP 和 MySQL。MySQL是用来存储有关视频的数据的(比如视频的文件名,缩略图,缩略图的高度和宽度,标题和描述)。PHP将完成格式化页面的工作,包括HTML和XML页面,这取决于你想要怎么做。
  你还需要一个开源的软件:ffmpeg,它可以将用户上传的任何格式的视频文件转换成Flash Video文件(FLV)。当你向用户展示一个可用的视频列表时,这个 ffmpeg 软件还可以生成视频中某一帧的缩略图。毫无疑问,在视频分享的世界中ffmpeg 会是你最好的助手。它是一个功能强大、易于使用而且文档齐全的极为优秀的软件。
  在客户端,有几种不同的用户界面可供选择。第一种就是类似于YouTube的HTML/Flash混合式的用户界面,另外一种就是完全基于Flash的用户界面。这里我选择了Flex框架来创建一个Flash程序,这个程序首先播放视频,然后会列出一个可用视频的列表并提供导航。
  创建PHP后台
  创建后台的程序之前,你必须先在MySQL建立一些数据库模式(schema)。首先,创建一个数据库,你可以使用mysqladmin命令行:  完成之后,将模式加载到数据库,模式文件内容如下:
  movies.sql  要向数据库中添加数据,你需要开发一个HTML上传页面,它可以上传视频,将视频转换成Flash Video,获得一个缩略图并将这些信息添加到数据库中。
  创建上传页面
  事实上,创建一个上传视频的HTML页很简单,如下:
  addmovie.html  复制内容到剪贴板
  代码:
  
  
  
  
  
  Title
  Movie
  
  
  
  
  
  这个页面的表单提交到 upload.php 页,upload.php 会处理视频,抓取缩略图并将数据添加到数据库中。页面代码如下:
  upload.php  复制内容到剪贴板
  代码:
  
  &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
  
  函数flv_import()是脚本代码的核心部分,它调用了converttoflv() 函数和 getthumbnail()函数来将视频转换成Flash Video文件和创建缩略图。然后它向数据库中添加了有关视频的一些数据。有关FLV和缩略图的功能都使用了 ffmpeg 中的命令行来处理视频。
  当我打开addmovie.html 页面的时候,我做了一下截图,见图1.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics