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

Posted

技术标签:

【中文标题】如何在视频上传时创建缩略图? [php/codeigniter]【英文标题】:how to create a thumbnail, at the time of video upload ? [php / codeigniter] 【发布时间】:2016-09-14 09:22:43 【问题描述】:

我正在尝试为我上传的视频创建缩略图。寻找在视频上传本身时生成缩略图的最简单方法。我认为如果有些人在不使用 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 因为我正在使用 godaddy 托管可能是一个商业计划,你不支持 ffmpeg。即使我不知道它可以在我的本地 wamp 服务器上运行 Windows 7 64 位。如果有任何解决方案,请提供此类教程的 UR。所以,我可以得到任何关于问题的解决方案。谢谢你! 您可能可以download a ffmpeg binary 并在您的服务器上使用它。 大概是什么人??我想要完整的解决方案。我没有告诉任何人为我编码。但是,可以给出一个指定的解决方案或链接,我可以在其中只遵循 php 和 codeigniter 的过程。 :) 【参考方案1】:

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

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

https://github.com/PHP-FFMpeg/PHP-FFMpeg

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

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

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

【讨论】:

以上是关于如何在视频上传时创建缩略图? [php/codeigniter]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 JavaScript 应用程序中的视频创建缩略图 [关闭]

在ios中上传后如何从firebase获取缩略图?

php视频上传和ffmpeg不会创建缩略图

如何显示 youtube 视频缩略图

如何从用户上传到我的服务器的视频中获取缩略图?

AWS Lambda 制作视频缩略图