0%

视频上传转码平台中遇到的问题与解决办法

视频上传转码平台中遇到的问题与解决办法

时间 2016-09-20

想要实现能够记录转码结果与转码时间的功能。

转码使用的是在php中调用popen()开一个进程去调用命令行函数去进行转码。

想要记录转码时间和转码进度。因为开一个异步的进程没有返回值所以没办法检测转码状态,所以只能想其他思路。
转码代码如下:

1
2
3
$cmd = "转码操作命令";
//异步执行转码操作
pclose(popen($cmd, 'r'));

这里的解决办法是:

在开始转码前执行一个脚本,用来记录转码开始时间已经是否需要转码的那个操作。然后执行转操作。转码结束后在执行一个脚本用来记录此时的时间,已经转码结束。这样在数据库中就可以获得开始转码时间与转码结束的时间,就可以获得转码时间。

1
2
3
$cmd = "php -f 第一个脚本 && 转码操作命令 && php -f 第二个脚本";
//异步执行转码操作
pclose(popen($cmd, 'r'));

&&命令在命令行中用来串联两个命令所以我们这里可以记录转码时间。

时间:2016年10月09日17:41:33

问题描述:执行php脚本是传参数遇到的问题。参数中有空格 导致这个参数编成了两个参数。

1
2
3
$zcw_one = 'zcw is';
$cmd = "php -f test.php $zcw_one"
system($cmd);

这是好在test.php中通过argc取到的参数有三个 第一个是 test.php 、第二个是zcw、第三个是is。
我这里在传参数前把空格去掉
方法如下:

1
2
3
4
5
6
function trimall($str)//删除空格
{
$qian=array(" "," ","\t","\n","\r");
$hou=array("","","","","");
return str_replace($qian,$hou,$str);
}