我正在尝试为上传的视频创建缩略图。搜索在视频上传本身时生成缩略图的最简单方法。我认为如果有人提供代码而不使用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();
答案 0 :(得分:1)
我认为你很难找到一个在开源世界中不使用ffmpeg的视频操作解决方案。即使你可以找到专门用于缩略图的东西,你可能会发现将来你想要做其他的事情,比如压缩,添加音频轨道等ffpmeg将有用。
好消息是,在Windows服务器上使用PHP并使用PHP是一种常见的解决方案,并且您可以使用一个使用良好且受支持的PHP ffmpeg库:
这包括一组ffmpeg构建的链接,您可以将其下载到Windows服务器上,因此您无需自己构建ffmpeg。
看一下'frame'方法,捕捉一个静止用作视频中特定时间的缩略图:
$video
->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))
->save('frame.jpg');