转帖: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.
发表评论
-
TC官方文档翻译03----可扩充字符串API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
2012-07-06 09:52 581/** * 转载请注明出处, 由于个人技术能力有限, 英 ... -
初见C#之欣喜 -- 有关正则和LINQ
2012-07-06 09:46 854这两天由于作业的原因用C#写了个小程序,苦恼于陌生的函数、 ... -
各种视图组件
2012-07-03 13:44 730TabHost包含: 布局器: 上边:一个TabW ... -
给FlexViewer加一个登录
2012-07-02 12:56 638打开index.mxml,修改如下: flex/sp ... -
[Bindable]元数据标签举例
2012-07-02 12:56 664【描述】 现在想从后台的数据库里读取一些Produc ... -
学习组件拖拽
2012-07-02 12:56 712height="323" ... -
Using the Adobe AIR 2 NativeProcess API to create a screen recorder
2012-07-02 12:56 1349With the release of AIR 2, Ad ... -
ExtJs 扩展 笔录1
2012-07-02 12:56 608Ext.layout.SlideLayout.js Ext ... -
整理电脑,整理大脑
2012-07-01 10:31 750电脑硬盘空间不足了,该怎么办呢? 增加硬盘空间,我真 ... -
Android 源码下载编译
2012-07-01 10:31 815很久以前写的,从那个博客搬过来的。 … 一、系 ... -
开发知识总结
2012-07-01 10:31 751总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充! ... -
完整的Flex多文件上传实例
2012-07-01 10:31 436客户端代码:fileUpload.xml--------- ... -
2011年11月01日
2012-06-30 16:52 9882011年11月01日 2011年11月 ... -
[转]Q版格斗游戏《口袋战士NOVA》开发心得[原创]
2012-06-30 16:52 891[转]Q版格斗游戏《口袋战士NOVA》开发心得[原创] 20 ... -
本创:如何才气建制出劣秀的Facebook游戏?
2012-06-30 16:52 807本创:如何才气建制出劣 ... -
中国网络游戏发展历史大全 .网络游戏
2012-06-30 16:52 682中国网络游戏发展历史大全 .网络游戏 2011年07月14日 ...
相关推荐
YoutubeKit是一个完全支持Youtube IFrame API和YoutubeDataAPI的视频播放器,可以轻松创建Youtube应用程序。
这个数据集是最热门的Youtube视频的每日记录, 该数据集包含有关Youtube每日热门视频的数月(且在不断增加)的数据。包括US,GB,DE,CA和FR地区(分别为美国,英国,德国,加拿大和法国)的数据,每天最多列出200个...
html5-youtube.js, 像HTML5视频API一样的YouTube播放器API包装器 注:" youtube.js"已经被重命名为"html5-youtube 。js"。 html5-youtube.js像HTML5视频API一样的YouTube播放器API包装器。的播放器API参考嵌入- ...
免费的YouTube上传器是第一个也是最好的工具,无需在批处理模式下使用原始YouTube网络界面即可将视频上传到YouTube。 充分利用DVDVideoSoft YouTube上传器: - 高速上传单个视频和一串视频; - 保存帐户信息以便...
Android-YoutubeMp3, 直接从 Youtube Android 应用 下载视频作为 mp3 YoutubeMp3 直接从 Youtube Android 应用 编辑添加主题下载视频 示例apk示例
Youtube Video Player+Youtube API Unity播放YouTube视频插件包...使用 Unity 视频播放器或自定义播放器播放 YouTube 视频。 我们支持直播视频,但此功能不适用于 Unity 视频播放器,您需要一个支持 HLS 的视频播放器。
艾奇FLV视频格式转换器软件,让您可以轻松吧从网络上下载的FLV格式和SWF格式的短片转换到任何常见音视频格式,可以在手机、PSP、MP4机、iPod、iphone、上流畅观看.。 高速转换是本软件的一大特色。 艾奇FLV视频...
Vido v2.1 -安卓Youtube多频道网络视频app应用项目源码java Firebase集成实现Material Design干净&轻UI布局Android Studio开发工具管理面板包括 Vido v2.1 -安卓Youtube多频道 Vido v2.1 -安卓Youtube多频道网络视频...
是最好的视频编辑应用程序和专业视频编辑器,具有音乐和特效,也是 YouTube、Instagram、Tik Tok 的免费视频创建者。您可以轻松剪切视频、裁剪视频、合并视频、加入视频、向视频添加音乐、使用音乐和图片编辑视频、...
是顶级电影制作人和带有音乐的高清视频编辑器,可帮助您轻松创建、编辑视频,并且可以分享发布到各个平台上。它是具有所有功能的最佳高清视频编辑器和视频制作器,可修剪和剪切视频/电影,模糊背景且无裁剪,添加...
youtube 3D视频播放器源代码,此版本为AS3.0脚本
使用我的电影视频制作工具可以创建一个看起来像魔术的反向视频。 具有视频反转功能,可以制作原始加反转视频。 将贴纸添加到视频中 为您的视频添加多个贴纸和动画表情符号。 长按后移动贴纸或文字,贴纸或...
ios应用源码之将视频分享到youtube,vimeo,facebook和flickr
IOS应用源码——将视频分享到youtube,vimeo,facebook和flickr.zip
对YouTube数据集进行可视化分析。资源涵盖实验所用的数据集、代码、实验截图以及实验内容描述文档。
react-native-netflix, 在Youtube上,从我的视频课程中响应本地应用程序 本地 Netflix将本机应用程序与Netflix的iOS风格进行反应。 我在Youtube上发布了一系列视频,其中有一个解释该应用。 电子邮件服务器安装$ ...
Movepic VIP 是一款用于使用静态图像制作短视频的完整应用程序,是款名副其实的照片动画师,将照片带到具有照片效果的实时电影中,使用 Movepic VIP 照片编辑器和视频编辑器以动画效果制作精美的实时照片,动态壁纸...
主要目的是研究学生使用YouTube视频增强学习和自主学习的感受。 这项研究的受访者是同一学校中从初一到初二的50名学生。 使用问卷收集数据,以识别学生对使用YouTube和自主学习的看法。 本研究在数据分析过程中使用...
1=====播放YouTube视频呢?这个也有滴就,支持横竖屏切换,支持列表播放,可以只定义扩展,可以放到项目中直接运行。。。。。 2=====当然播放HLS格式的视频有时候确实是比较麻烦,ijkplayer还得编译so库进行支持...