注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曾国藩的博客

 
 
 

日志

 
 

nginx+video-thumbextractor生成视频缩略图  

2015-12-06 15:33:46|  分类: JAVA/PHP/Nginx/T |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://www.ttlsa.com/nginx/nginx-modules-video-thumbextractor/

前言

这年头都看网络视频吧,优酷,搜狐,土豆,爱奇艺.打开页面都能看到视频的一个截图,这些图片怎么来的,难道是用暴风影音截图弄出来的?不是吧,一般是用服务器上的程序截图之后传到图片服务器上了。可以用php、java等等来生成视频缩略图,nginx也有这方面的功能,一起来探索一下。

系统环境

Linux:centos 5/6
ImageMagick:yum安装
LibJpeg: v8
地址:http://www.ijg.org/files/
nginx:1.4.2
地址:http://nginx.org/en/download.html
nginx-video-thumbextractor:v0.1.0 .
地址:https://github.com/wandenberg/nginx-video-thumbextractor-module

支持格式

mp4, mov and flv.

最小图片

最小能生成16x16的图片

软件安装

安装ImageMagick

1
# yum install ImageMagick* ImageMagick-*

安装libjpeg

1
2
3
4
5
6
# wget http://www.ijg.org/files/jpegsrc.v8.tar.gz
# tar -xzvf jpegsrc.v8.tar.gz
# cd jpeg-8/
# ./configure --enable-static --enable-shared
# make
#make install

安装yasm

1
2
3
4
5
6
# wget https://github.com/yasm/yasm/archive/master.zip
# unzip master.zip
#cd yasm-master
# ./configure
# make
# make install

安装ffmpeg

1
2
3
4
5
6
# wget http://ffmpeg.org/releases/ffmpeg-2.0.1.tar.gz
# tar -xzvf ffmpeg-2.0.1.tar.gz
# cd ffmpeg
# ./configure --prefix=/usr --disable-ffserver --disable-ffplay --enable-shared
# make
# make install

安装nginx

1
2
3
4
5
6
7
8
# wget https://codeload.github.com/wandenberg/nginx-video-thumbextractor-module/zip/master -O nginx-video-thumbextractor-module-master.zip
# unzip nginx-video-thumbextractor-module-master.zip
# wget http://nginx.org/download/nginx-1.4.2.tar.gz
# tar -xzvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
# ./configure --prefix=/usr/local/nginx-1.4.2 --add-module=../nginx-video-thumbextractor-module-master --with-cc-opt='-I /usr/include/ImageMagick'
# make
# make install

nginx配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
 
        listen       80;
        server_name  test.ttlsa.com;
        access_log  /data/logs/nginx/test.ttlsa.com.access.log  main;
 
        index index.html index.php index.html;
        root /data/site/test.ttlsa.com;
 
        location / {
 
        }
 
        location ~ /2687/(.*)
        {
                alias /data/site/test.ttlsa.com/2687/;
                video_thumbextractor;
                video_thumbextractor_video_filename    $1;
                video_thumbextractor_video_second      $arg_second;
                video_thumbextractor_image_width       $arg_width;
                video_thumbextractor_image_height      $arg_height;
        }
}

测试

创建站点目录

1
# mkdir /data/site/test.ttlsa.com/2687/

上传文件到这个目录下,我传的是v_baofeng.mp4

访问
下面三种访问方式都是正确的.second这个才是是必填的,否则会出现400错误.
http://test.ttlsa.com/2687/v_baofeng.mp4?second=77&width=400&height=200

nginx

nginx视频缩略图-1

http://test.ttlsa.com/2687/v_baofeng.mp4?second=77&width=300

nginx

nginx视频缩略图-2

http://test.ttlsa.com/2687/v_baofeng.mp4?second=77&height=100

nginx

nginx视频缩略图-3

说明:second视频中的时间点,秒为单位。width生成的图片宽度,height生成图片高度。两个参数都设置会裁切图片,如果只设置一个那么会根据那个参数等了比例生成图片.

指令

video_thumbextractor

语法: video_thumbextractor
配置段: location
发行版本: 0.1.0
开启缩略图功能

video_thumbextractor_video_filename
语法: video_thumbextractor_video_filename filename
默认值: none
配置段: http
发行版本: 0.1.0
文件名,如果文件不存在会返回404

video_thumbextractor_video_second
语法: video_thumbextractor_video_second second
默认值: none
配置段: http
发行版本: 0.1.0
取某一秒的关键帧,如果指定的时间超过了视频的长度,将会返回404.如果未指定这个值将会返回400错误.

video_thumbextractor_image_width
语法: video_thumbextractor_image_width width
默认值: 0
配置段: http
发行版本: 0.1.0
生成图片的宽度,这是一个可选项.如果仅仅指定了宽度,那么图片高度会按原比例缩放

video_thumbextractor_image_height
语法: video_thumbextractor_image_height height
默认值: 0
配置段: http
发行版本: 0.1.0

生成图片的高度,这是一个可选项.如果仅仅指定了高度,那么图片宽度会按原比例缩放
如果这两项都指定了,那么会裁切图片.到时候大家看到的图片可能就是残缺的.

常见错误

1、Wrong JPEG library version: library is 80, caller expects 62
JPEG版本不匹配,需要安装v8版本。

安装过程麻烦了一点,但是配置和使用非常简单。用户上传视频到视频服务器上之后,使用这个方法就可以去到视频的缩略图了.是不是很简单

  评论这张
 
阅读(206)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018