PHP利用FFmpeg读取视频播放时长和码率等信息
例子,FFmpeg读取视频播放时长和码率
代码如下:
代码如下 | 复制代码 |
<?php |
本例中,会用到passthru,可能部分虚拟主机会将此命令禁用
例子2
代码如下 | 复制代码 |
//获得视频文件的缩略图 |
短网址(Short URL) ,顾名思义就是在形式上比较短的网址。在Web 2.0的今天,不得不说,这是一个潮流。目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接。
算法原理
1)将长网址md5生成32位签名串,分为4段, 每段8个字节;
2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理;
3)这30位分成6段, 每5位的数字作为字母表的索引取得特定字符, 依次进行获得6位字符串;
4)总的md5串可以获得4个6位串; 取里面的任意一个就可作为这个长url的短url地址;
下面是用PHP实现短网址转换的算法,代码如下:
PHP
代码如下 | 复制代码 |
<?php |
通常我们用四组网址中的第一组即可。
这里需要注意的是,这个算法是不可逆的,因此,通常的做法是将短网址和对应的原网址存入数据库,当访问时,从数据库中取出匹配的原网址,通过301或header进行跳转。
PHPWord可以让php操作word文档了这个与phpexcel是一样的一个第三方插件了,我们下面来看在使用phpword时碰到的关于生成word实现table合并(colspan和rowspan)的例子。PHPWord(http://phpword.codeplex.com/)是一个很好处理和生成WORD文档的工具,但是生成复杂的word,如colspan和rowspan的实现,还是需要你做些修改。
第一步:在phpword/Style/Cell.php文件类中添加如下属性:
private $_gridSpan;// for the colspan
private $_vMerge;// for the rowspan
第二步:在phpword/Style/Cell.php文件类中添加如下方法:
public function setGridSpan($pValue = null)
{
$this->_gridSpan = $pValue;
}
public function getGridSpan()
{
return $this->_gridSpan;
}
public function setVMerge($pValue = null)
{
$this->_vMerge = $pValue;
}
public function getVMerge()
{
return $this->_vMerge;
}
第三步:在phpword/Style/Cell.php文件类构造函数__construct()中添加如下:
$this->_gridSpan=null;
$this->_vMerge=null;
第四步:在phpword/writer/word2007/base.php类的_writeCellStyle方法中添加:
$gridSpan = $style->getGridSpan();
if(!is_null($gridSpan))
{
$objWriter->startElement('w:gridSpan');
$objWriter->writeAttribute('w:val', $gridSpan);
$objWriter->endElement();
}
/** edited by www.phpddt.com */
$vMerge = $style->getVMerge();
if(!is_null($vMerge))
{
$objWriter->startElement('w:vMerge');
$objWriter->writeAttribute('w:val', $vMerge);
$objWriter->endElement();
}
OK,恭喜你,搞定了,然后看看怎么使用吧!
PHPWord rowspan的使用:
$table = $section->addTable();
$table->addRow();
$table->addCell(100,array('vMerge' => 'restart'))->addText('1');
$table->addCell(100)->addText('2');
$table->addRow();
$table->addCell(100,array('vMerge' => 'fusion'));
$table->addCell(100)->addText('3');
生成的word效果如下截图:
PHPWord colspan的使用:
$table->addRow();
$styleCell=array('gridSpan' => 2);
$table->addCell(200, $styleCell)->addText('PHP二次开发');
$table->addCell(100)->addText('http://www.111cn.net');
$table->addRow();
$table->addCell(100)->addText('PHP');
$table->addCell(100)->addText('python');
$table->addCell(100)->addText('java');
$section->addTextBreak(10);
生成word效果图如下:
直接引入该类文件并创建该类的实例、就可以使用验证码了,验证码类文件vcode.class.php代码如下
这里我使用的画字体的函数是imagettftext()、因为这个函数可以自定义字体样式、从代码中也能看出来
传入的参数有个字体文件属性、如果不喜欢用这个函数可以使用imagestring()函数也行
只不过个人觉得这个函数的默认字体大小、也不好看、还是自定义字体看着舒服点
调用验证码类image_002.php代码如下
HTML代码如下
到这里整个功能就做完了、希望对一些哥们有用、同时也当自己做个笔记
我们建站的时候,开始是每次请求数据库都要重新连接的、这样显然不合理、然后自己封装了一个数据库操作类、DBTools.php、要解决一个连接多次使用的话、最好的办法是使用长连接、但是新浪的数据库用不了长连接、那么就只能换一种方式了、这里我使用的是”单例模式“为什么要使用PHP单例模式?
1、php的应用主要在于数据库应用、所以一个应用中会存在大量的数据库操作、使用单例模式、则可以避免大量的new 操作消耗的资源
2、如果系统中需要有一个类来全局控制某些配置信息、那么使用单例模式可以很方便的实现. 这个可以参看ZF的FrontController部分
3、在一次页面请求中、便于进行调试、因为所有的代码(例如数据库操作类db)都集中在一个类中、我们可以在类中设置钩子、输出日志、从而避免到处var_dump、echo
单例类
1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象)、单例类不能在其他类中实例化、只能被其自身实例化
2、拥有一个保存类的实例的静态成员变量
3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类、通过instanceof操作符可以检测到类是否已经被实例化)
4、另外、需要创建__clone()方法防止对象被复制(克隆)
单例实现方法
单例类Demo源代码
调用方法
简单的说、一个对象(在学习设计模式之前、需要比较了解面向对象思想)只负责一个特定的任务、在网上看了一些资料、单例模式比较好理解、看看介绍、然后看看代码基本也就能够理解了、设计模式这些的花点心思基本的是能够理解的、不管是Java还C#、或者是PHP设计模式基本上都是通用的,以上代码、这样就完成了一个简单的单例类了、希望对大家有用。
相关文章
- PHP的使用在现在越来越受用户的重视,很多人都在钻研PHP。今天文章就给大家带来简单的实例PHP编程怎么获取音频文件时长,有什么获取方法,感兴趣的下面一起来看看。 问...2017-07-06
- 本篇文章为大家介绍了PHP利用ffmpeg提取视频中音频与视频画面的相关资料,很有参考价值,一起来看一看吧。 前言FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表...2017-07-06
使用Spring的拦截器监测每个Controller或方法的执行时长
这篇文章主要介绍了使用Spring的拦截器监测每个Controller或方法的执行时长,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-28- 这篇文章主要介绍了C#实现通过ffmpeg从flv视频文件中截图的方法,实例分析了C#使用ffmpeg操作flv文件的技巧,需要的朋友可以参考下...2020-06-25
- 想要提取视频中的音频信息,首选的技术是ffmpeg,ffmpeg是一个非常有用的命令行程序,它可以用来转码媒体文件。这篇文章主要给大家介绍了PHP利用ffmpeg提取视频中音频与视频画面的相关资料,需要的朋友可以参考下。...2017-06-11
- 这篇文章主要给大家介绍了利用nginx与ffmpeg搭建流媒体服务器的全过程,文中介绍的很详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。...2017-07-06
- 这篇文章主要介绍了php使用ffmpeg获取视频信息并截图的实现方法,实例分析了php操作视频与图像的相关技巧,需要的朋友可以参考下...2016-05-05
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
大家都知道ffmpeg是一款视频流的软件了,我们在linux系统中可以安装ffmpeg了,这篇文章主要介绍了在Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤,需要的朋友可以参考下。...2017-03-12- FFmpeg是一个视频插件了我们可以利用php调用FFmpeg接口来对视频进行操作了,如截图或读取视频播放时长和码率等信息了,下面来看一段php代码。 例子,FFmpeg读取视频播...2016-11-25
- 这篇文章给大家分享了利用PHP中的FFmpeg读取视频播放时长与码率等信息,有需要的朋友们可以参考借鉴。下面来一起看看吧。 ...2016-10-02
- 这篇文章主要为大家详细介绍了FFmpeg获取网络摄像头数据解码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
asp.net音频转换之.amr转.mp3(利用ffmpeg转换法)
AMR转MP3可实现将手机上的AMR录音转换成流行的MP3格式,以适用更广泛的应用。AMR的体积非常小,适用于存储在手机中,当我们想将在手机上的音频上传到网络,就需要将其转换成MP3等流行的格式,本文就是介绍asp.net利用ffmpeg转换法将.amr转.mp3的方法,下面来一起看看吧。...2021-09-22- 用PHP生成视频的缩略图,在网上比较一致的方法就是通过ffmpeg来做的,下面这篇文章主要给大家介绍了关于php如何利用ffmpeg获取视频第一帧为缩略图的相关资料,需要的朋友可以参考下...2022-03-02
- 这篇文章主要介绍了如何通过C语言或者C++编程语言结合ffmpeg拿到一些音视频的关键信息,例如:帧率等。感兴趣的小伙伴可以跟随小编一起学习一下...2021-12-28
- 本文主要介绍了Java多线程之实现用户任务排队并预估排队时长的问题,文中的代码具有一定的学习和工作价值,感兴趣的小伙伴快跟随小编一起学习一下吧...2021-12-10
- 这篇文章主要为大家详细介绍了如何利用Qt+FFMPEG实现循环解码功能,文中的示例代码讲解详细,对我们学习Qt有一定帮助,需要的可以参考一下...2022-08-05