如何在视频上传时创建缩略图? [php / 代码点火器]

how to create a thumbnail, at the time of video upload ? [php / codeigniter]

我正在尝试为我上传的视频创建缩略图。寻找在视频上传时生成缩略图的最简单方法。我认为如果有人在不使用 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(); 

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

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

这包括一组 ffmpeg 构建的 link,您可以将其下载到您的 windows 服务器上,因此您不需要自己构建 ffmpeg。

查看 'frame' 在视频中的特定时间捕获静止图像用作缩略图的方法:

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