
1 bdbai 2017 年 2 月 25 日 via Android 怎么执行的 FFmpeg ? |
2 yao978318542 OP @bdbai #1 exec("FFmpeg 命令") |
3 isCyan 2017 年 2 月 25 日 我想是把 ffmpeg 的日志输出到文件里,然后读取文件,每个任务一个日志文件 |
4 YanwenSun 2017 年 2 月 25 日 via Android 可以用返回值吧 |
5 yao978318542 OP @isCyan #3 太麻烦了 |
6 xiaoz 2017 年 2 月 25 日 @yao978318542 启用了 exec 函数会不会有风险? |
7 yao978318542 OP @xiaoz #6 会 但是我不会安装 php-FFMpeg 啊 哎你会安装吗? |
8 qiayue PRO |
9 yao978318542 OP @qiayue #8 直接下载下来 放到项目里面引用就行吗? 还是要怎么安装呢?求指点 |
10 herozzm 2017 年 2 月 25 日 既然都 exec 了,在执行完 FFmpeg 后,再接着用一个命令将该视频转换状态改成已经完成即可 FFmpeg xxx.mp4 && 修改完成的状态的命令 |
11 CoderRunner 2017 年 2 月 25 日 string exec ( string $command [, array &$output [, int &$return_var ]] ) 可以用$return_val 判断吧 |
12 yao978318542 OP @CoderRunner #11 然而他不会返回任何东西 |
13 gouchaoer 2017 年 2 月 25 日 via Android 首先不能在 php-fpm 里面做这事,你需要另开 php-cli 完成这件事,通知通过 redis 最简单 |
14 isCyan 2017 年 2 月 25 日 @yao978318542 #7 composer 大法好同志你为什么不上 composer 呢 8 楼那个是 node.js 的 |
15 yao978318542 OP @isCyan #14 关服务器的哥们不在啊 我也想啊 哎 |
16 CoderRunner 2017 年 2 月 25 日 @yao978318542 $return_val 的说明, 这个并不是命令执行的返回值的, 正常结束$return_val 是 0 If the return_var argument is present along with the output argument, then the return status of the executed command will be written to this variable. |
17 fuxiaopang 2017 年 2 月 25 日 ``` cmd = "/root/bin/ffmpeg -i /data/origin/{$uploadVideo->id}_.mp4 " . "-filter:v \"scale=iw*min(1920/iw\\,1080/ih):ih*min(1920/iw\\,1080/ih), pad=1920:1080:(1920-iw*min(1920/iw\\,1080/ih))/2:(1080-ih*min(1920/iw\\,1080/ih))/2\" " . "-b:v 4000k -minrate 3500k -maxrate 10000k -bufsize 4000k " . "-r 25 -g 25 -c:v libx264 -ar 48000 -b:a 192k -strict -2 /data/origin/{$uploadVideo->id}_o.mp4 -y"; exec($cmd." 2>&1", $out, $ret); if ($ret) { // Error $uploadVideo->status = Video::STATUS_FINISH_DOWN; $uploadVideo->save(); $cmd = "rm -rf /data/encode/{$uploadVideo->id}_*"; shell_exec($cmd); Email::report('ENCODE VIDEO ERR', print_r($out, true)); return false; } ``` 这个是我写的用来转换自动加遮幅到 1080P 4M H264 的代码,这样上传到 youku 刚好是 1080 |
18 yao978318542 OP @fuxiaopang #17 会返回进度吗? |
19 3IOhG7M0knRu5UlC 2018 年 2 月 20 日 via Android 命令行束就行了 |