如何在视频上传时创建缩略图? [php / codeigniter]

时间:2016-05-18 04:26:59

标签: php codeigniter video ffmpeg thumbnails

我正在尝试为上传的视频创建缩略图。搜索在视频上传本身时生成缩略图的最简单方法。我认为如果有人提供代码而不使用ffmpeg将为我节省生命。因为我在Windows wamp上运行我的代码或任何其他替代方案也欢迎你。

我的真实代码在CodeIgniter中,无法弄清楚如何操作。

$postname = $this->input->post('post-name');

            $configVideo['upload_path'] = './video';
            $configVideo['max_size'] = '1000000024';
            $configVideo['allowed_types'] = 'avi|flv|wmv|mp4';
            $configVideo['overwrite'] = TRUE;
            $configVideo['remove_spaces'] = TRUE;
            $ext = get_mime_by_extension($_FILES['video']['name']);
            $video_name = str_replace(' ', '_', $postname);
            $configVideo['file_name'] = $video_name;

            $this->load->library('upload', $configVideo);
            $this->upload->initialize($configVideo);

            if (!$this->upload->do_upload('video')) {

                $msg = $this->upload->display_errors();
                $this->session->set_flashdata('error', $msg);


            } else {
                $videoDetails = $this->upload->data(); 

1 个答案:

答案 0 :(得分:1)

我认为你很难找到一个在开源世界中不使用ffmpeg的视频操作解决方案。即使你可以找到专门用于缩略图的东西,你可能会发现将来你想要做其他的事情,比如压缩,添加音频轨道等ffpmeg将有用。

好消息是,在Windows服务器上使用PHP并使用PHP是一种常见的解决方案,并且您可以使用一个使用良好且受支持的PHP ffmpeg库:

这包括一组ffmpeg构建的链接,您可以将其下载到Windows服务器上,因此您无需自己构建ffmpeg。

看一下'frame'方法,捕捉一个静止用作视频中特定时间的缩略图:

$video
    ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))
    ->save('frame.jpg');