php+flv
flv+php视频网站制作攻略
1#
发表于 2008-11-14 19:55 | 只看该作者 | 倒序看帖 | 打印
flv视频网站制作 使用Flex和PHP创建自己的视频应用英文原文: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命令行: 复制内容到剪贴板 代码:mysqladmin create movies 完成之后,将模式加载到数据库,模式文件内容如下: movies.sql 复制内容到剪贴板 代码:DROP TABLE IF EXISTS movies; CREATE TABLE movies ( movieId INTEGER NOT NULL AUTO_INCREMENT, title VARCHAR( 255 ), source VARCHAR( 255 ), thumb VARCHAR( 255 ), width INTEGER, height INTEGER, PRIMARY KEY( movieId ) ); 要向数据库中添加数据,你需要开发一个HTML上传页面,它可以上传视频,将视频转换成Flash Video,获得一个缩略图并将这些信息添加到数据库中。 创建上传页面 事实上,创建一个上传视频的HTML页很简单,如下: addmovie.html 复制内容到剪贴板 代码: 这个页面的表单提交到 upload.php 页,upload.php 会处理视频,抓取缩略图并将数据添加到数据库中。页面代码如下: upload.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 函数flv_import()是脚本代码的核心部分,它调用了converttoflv() 函数和 getthumbnail()函数来将视频转换成Flash Video文件和创建缩略图。然后它向数据库中添加了有关视频的一些数据。有关FLV和缩略图的功能都使用了 ffmpeg 中的命令行来处理视频。 当我打开addmovie.html 页面的时候,我做了一下截图,见图1.
upload.php 页面中的脚本只是一些很基础的代码。如果向将其投入使用,你需要添加一些错误验证代码。这些脚本最大的问题就是处理较大的视频文件的能力。较大的视频文件需要转换很长时间,用户也需要等待很长时间才行。 为了能够支持大的视频文件(比如长于10秒钟的视频),我建议你简单地将视频复制到一个文件夹中,然后通知用户该视频稍后将会出现在网站上。然后你可以编写一段脚本来处理该文件夹中的视频。 这里我觉得有必要说明一下为什么要把视频转换成Flash Video。当然,在Flash Player中我需要使用Flash Video来观看视频。但是不只是那样,如果我不进行转换的话就要显示每个视频的播放器是什么,而且还要帮助用户找到并安装适用于他们系统的播放器。这将 需要大量的工作。将所有的视频转换成Flash Video的最大优点??同时也是使用Flex编写的Flash Player的最大优点??就是它几乎可以在任何地方运行。 下一步就是创建一个类似YouTube的简单的 HTML/Flash 界面。 创建 HTML/Flash 界面 在Adobe Flex Builder? 2创建一个新的Flex 工程,然后创建一个Flash视频,这个视频通过给定的URL找到视频并播放。我们将这个Flex应用程序文件命名为simplemovie.mxml,代码如下: simplemovie.mxml 复制内容到剪贴板 代码: 这个简单的Flex程序包括两部分:一个用来播放视频的VideoDisplay组件以及一个Play 按钮,当视频播放完毕时用户可以点击按钮重新播放。 VideoDisplay 组件有一个 source 属性,它包含了视频FLV文件的URL地址。在这里,它的值是一个程序变量,这个变量是HTML中的 |

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。
