前言
這年頭都看網(wǎng)絡視頻吧,優(yōu)酷,搜狐,土豆,愛奇藝.打開頁面都能看到視頻的一個截圖,這些圖片怎么來的,難道是用暴風影音截圖弄出來的?不是吧,一般是用服務器上的程序截圖之后傳到圖片服務器上了。可以用
php、java等等來生成視頻縮略圖,
nginx也有這方面的功能,一起來探索一下。
系統(tǒng)環(huán)境
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;
}
}
測試
創(chuàng)建站點目錄
1
# mkdir /data/site/test.ttlsa.com/2687/
上傳文件到這個目錄下,我傳的是v_baofeng.mp4
訪問
下面三種訪問方式都是正確的.second這個才是是必填的,否則會出現(xiàn)400錯誤.
http://test.ttlsa.com/2687/v_baofeng.mp4?second=77&width=400&height=200
nginx視頻縮略圖-1
http://test.ttlsa.com/2687/v_baofeng.mp4?second=77&width=300
nginx視頻縮略圖-2
http://test.ttlsa.com/2687/v_baofeng.mp4?second=77&height=100
nginx視頻縮略圖-3
說明:second視頻中的時間點,秒為單位。width生成的圖片寬度,height生成圖片高度。兩個參數(shù)都設置會裁切圖片,如果只設置一個那么會根據(jù)那個參數(shù)等了比例生成圖片.
指令
video_thumbextractor
語法: video_thumbextractor
配置段: location
發(fā)行版本: 0.1.0
開啟縮略圖功能
video_thumbextractor_video_filename
語法: video_thumbextractor_video_filename filename
默認值: none
配置段: http
發(fā)行版本: 0.1.0
文件名,如果文件不存在會返回404
video_thumbextractor_video_second
語法: video_thumbextractor_video_second second
默認值: none
配置段: http
發(fā)行版本: 0.1.0
取某一秒的關鍵幀,如果指定的時間超過了視頻的長度,將會返回404.如果未指定這個值將會返回400錯誤.
video_thumbextractor_image_width
語法: video_thumbextractor_image_width width
默認值: 0
配置段: http
發(fā)行版本: 0.1.0
生成圖片的寬度,這是一個可選項.如果僅僅指定了寬度,那么圖片高度會按原比例縮放
video_thumbextractor_image_height
語法: video_thumbextractor_image_height height
默認值: 0
配置段: http
發(fā)行版本: 0.1.0
生成圖片的高度,這是一個可選項.如果僅僅指定了高度,那么圖片寬度會按原比例縮放
如果這兩項都指定了,那么會裁切圖片.到時候大家看到的圖片可能就是殘缺的.
常見錯誤
1、Wrong JPEG library version: library is 80, caller expects 62
JPEG版本不匹配,需要安裝v8版本。
安裝過程麻煩了一點,但是配置和使用非常簡單。用戶上傳視頻到視頻服務器上之后,使用這個方法就可以去到視頻的縮略圖了.是不是很簡單
轉載請注明出處:http://www.ttlsa.com/html/2687.html
收 藏