【问题标题】:video uploading using PHP使用 PHP 上传视频
【发布时间】:2012-12-16 01:05:39
【问题描述】:

我正在使用以下代码上传视频

    $img1 = $_FILES['video']['name'];

    if (!empty($img1)) {

        $fname = $_FILES['video']['name'];

        $img_name1 = "video/" . $fname;

        if(move_uploaded_file($_FILES['video']['tmp_name'], $img_name1)){
            $new_name = ShowFileName($fname);

             $output = 'video/'.$new_name.'.flv';

             $command = "$ffmpegpath  -i $img_name1  -s 486x368 -b 400kb  -ac 1 -ar 44100 -r 25 -s 320x240 -f flv $output";
             $command = $ffmpegpath.' -i'.$img_name1.' -s 486x368 -b 400kb  -ac 1 -ar 44100 -r 25 -qmin 3 -qmax 5 -y '.$output;
             exec($command);

             $thumb_dir = 'video_thumbs/';

             $thumb = $new_name.'jpg';

             exec($ffmpegpath .' -i '.$img_name1.' -an -y -f mjpeg -ss 0.05 -vframes 1 '.$thumb_dir.$img_name1);
             unlink($img_name1);
        }
     }

它工作正常。即成功将视频移动到视频文件夹并将视频名称插入数据库表。但问题与该视频的拇指图像有关。拇指名称已插入数据库,但图像未上传到 video_thumb 文件夹...... 请帮帮我....

【问题讨论】:

  • 这与php5或文件上传无关。问题在于您应该制作缩略图的 ffmpeg 调用。由于某种原因,它没有成功。我对ffmpeg知之甚少,不知道这个问题是什么。但这绝对看起来像是一些 ffmpeg 问题。
  • 你有没有试过先执行创建ffmpeg的镜像命令?如果它不起作用,那么您可能会遇到错误,您可以通过为 exec 调用指定第二个或第三个参数来捕获该错误。 php.net/manual/en/function.exec.php

标签: php image file-upload


【解决方案1】:

我看到的唯一问题是 ffmpeg 命令行中的文件名。如果它包含特殊字符,您应该使用escapeshellarg()php function escapeshellarg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 2017-03-03
    • 2016-01-12
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    相关资源
    最近更新 更多