国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
ffmpeg和Mencoder使用實例小全

下載電影的時候,我們總希望在全部下載完成之前能夠預覽一下影片內(nèi)容,于是發(fā)布者時常會放一些影片截圖在種子文件中,或者直接貼到網(wǎng)上,也有一些截圖是一張圖片,但包含很多幅影片在一起,就像下面這張:

有很多軟件能夠截取影片圖像、合并圖像,但如果影片太多,比如視頻網(wǎng)站為用戶上傳的圖像生成預覽圖之類的,人工在gui方式下操作就不可取了,我們需要在命令行方式下來截取、合并。

 

首先,截取影片圖像使用最多的就是mplayer或者ffmpeg,我用mplayer比較熟,本文就以此為例了,ffmpeg功能也是非常強大的,但據(jù)說支持的文件格式卻不豐富。mplayer截取影片圖像的基本命令為:

mplayer -ss START_TIME -noframedrop -nosound -vo jpeg -frames N NAME_OF_VIDEO_FILE   
上 例中,-ss指定開始的時間,結(jié)合-frames參數(shù),限定從某個時間開始、截取幾幀圖像。為了體現(xiàn)整個影片的內(nèi)容,我需要在影片中間隔時間相同的幾個 點、每個點截取1幀圖像,所以按道理應(yīng)該用-frames1,但是mplayer這樣截圖的情況下,第一幀似乎永遠都會截取到一個黑屏,所以我常用- frames2。截取下來的圖像保存在了當前目錄,名稱從00000001.jpg開始依次遞增,按照-frames2,就是取00000002.jpg 為結(jié)果,刪除00000001.jpg即可。經(jīng)過簡單實驗,在截取wmv、rmvb影片時,前面的好幾幀都會是黑屏,也只能參考上面的做法多取幾幀了。

為 了取影片中間隔大致相同的幾個點,可以用-ss指定時間,也可以用-sb指定開始字節(jié),在我的實際使用中,使用-sb只會得到黑屏,所以通過文件大小來設(shè) 置間隔點的辦法不行,只能用-ss時間間隔了,這就需要首先得到影片的總時間。好在mplayer為我們提供了類似的功能:

mplayer -identify movie-filename -nosound -vc dummy -vo null   
這樣會輸出一大堆影片信息,從中截取所需內(nèi)容即可,在bash shell中,取得影片總時間長度(以秒為單位)的命令如下:

FILESIZE=`mplayer -identify -nosound -vc dummy -vo null $1 | grepID_LENGTH | sed -r ’s/ID_LENGTH=[[:digit:]]*.[[:digit:]]*?/1/g’`   
有了影片的總時長,我們就可以根據(jù)所要截取的幀數(shù),計算出每個間隔點的時間位移了。不過要注意一般影片的開始-ss 0和結(jié)束-ss TOTAL_TIME_OF_VIDEO截取下來都會是黑屏,在處理的時候要分別加上和減去若干秒。

截取工作完成后,我們擁有了一堆000000xx.jpg文件,如果能把這些文件都放到一個文件中,每行2張,成為一張大圖片,在發(fā)布的時候會很方便。所以,我們使用imagemagickhttp://www.imagemagick.org/script/index.php中的montage命令來實現(xiàn):

montage -geometry +0+0 -tile 2 *.jpg montage.jpg   
-geometry +0+0是設(shè)定使用原始圖片大小,-tile 2參數(shù)設(shè)定每行放2張圖片,最后一個參數(shù)是要生成的目標文件名,現(xiàn)在,我們就能夠得到像剛才那張一樣的圖片了。

原理已經(jīng)講清楚了,可以自己寫一個bash腳本來方便調(diào)用,我在網(wǎng)上找到了一個很不錯的例子http://www.linuxquestions.org/questions/showthread.php?t=361072,可以在這個基礎(chǔ)上進行修改,過程不再詳述了。

下面再列一些在網(wǎng)上找到的其他mplayer、mencoder、ffmpeg的使用實例:

mplayer獲取影片信息
mplayer -identify movie-filename -nosound -vc dummy -vo null
從所有輸出中可以grep到如下信息:
- filetype: ASF file format detected.
- dimensions and format: VIDEO: [MP43] 320×240 24bpp 1000.000 fps 0.0 kbps 0.0 kbyte/s
- video format: ID_VIDEO_FORMAT=MP43
- width dimensions: ID_VIDEO_WIDTH=320
- height dimensions: ID_VIDEO_HEIGHT=240
- length in seconds: ID_LENGTH=98.00
參考8http://gallery.menalto.com/node/40548

mencoder圖片做成電影
#用當前目錄中的所有JPEG文件創(chuàng)建DivX4文件:
mencoder *.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o output.avi
#用當前目錄中的一些JPEG文件創(chuàng)建DivX4文件:
mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o output.avi *.jpg
#用當前目錄中的所有JPEG文件創(chuàng)建Motion JPEGMJPEG文件:
mencoder -mf on:w=800:h=600:fps=25 -ovc copy -o output.avi *.jpg
#用當前目錄中的所有PNG文件創(chuàng)建一個非壓縮的文件:
mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb -o output.avi *.png
簡單用法:
mencoder *.jpg -mf on:fps=15 -o output.avi -ovc xvid
參考6 參考7http://huangjiahua.livejournal.com/99358.html

ffmpeg屏幕錄像
ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024×768 ~/test.avi
其中,-vd x11:0,0 指錄制所使用的偏移為 x=0 和 y=0,-s 1024×768 指錄制視頻的大小為 1024×768。錄制的視頻文件為 test.avi,將保存到用戶主目錄中。其他選項可查閱其說明文檔。
如果你只想錄制一個應(yīng)用程序窗口或者桌面上的一個固定區(qū)域,那么可以指定偏移位置和區(qū)域大小。使用xwininfo -frame命令可以完成查找上述參數(shù)。
你也可以重新調(diào)整視頻尺寸大小,如:./ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi。
參考5http://linuxtoy.org/archives/ffmpeg.html

mplayer對video進行截屏 截圖wmv mpeg mov flv all works
mplayer 78.mov -ss 1 -nosound -vo jpeg:outdir=./ -frames 2
我截的第一張圖不知為何全部都是黑屏
參考4http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=165254

轉(zhuǎn)換為flv文件
mencoder NOW.wmv -ffourcc FLV1 -oflavf -ovc lavc -lavcopts vcodec=flv:acodec=mp3:abitrate=56 -srate 22050-oac mp3lame -o NOW.flv
ffmpeg -i a.asf -ab 56 -ar 22050 -b 500 -r 15 -s 320×240 asf.flv
參考3http://www.roading.net/blog/article.asp?id=114

使用ffmpeg抓圖
ffmpeg -i test2.asf -y -f image2 -ss 08.010 -t 0.001 -s 352×240 b.jpg
jpg: ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352×240 -ss a.jpg //注意-ss就是要提取視頻文件中指定時間的圖像
jpg: ffmpeg -i asf.flv -y -f image2 -t 1 asf.jpg
gif: ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
參考3 參考2http://www.killflash.net/blog/article.asp?id=77

如何合并幾個視頻片段
mencoder -oac copy -ovc copy -idx -o output.avi video1.avi video2.avi video3.avi
* 其中,-oac copy 選項告訴 mencoder 要正確拷貝音頻流。而 -ovc copy 選項則是拷貝視頻流。
* 如果在視頻文件中沒有找到索引的話,那么 -idx 選項會要求 mencoder 建立它。
* -o 選項指定輸出文件的名稱。
* 最后幾個參數(shù)為需要合并的幾個視頻片段。
參考1 http://linuxtoy.org/archives/join_several_videos.html

大雜燴
服務(wù)器端轉(zhuǎn)換工具Server-Side-FLV-Conversion
場景:想把 MPG 或 AVI 上傳到你的服務(wù)器并自動轉(zhuǎn)換成 FLV 嗎?
1,FFmpeg http://sourceforge.net/projects/ffmpeg | 教程一http://soenkerohde.com/tutorials/ffmpeg | 教程二http://klaus.geekserver.net/flash/streaming.htmlGoogle Video使用的就是這個東東.
2,Flix Engine http://www.on2.com/developer/flix-engine-sdk | 教程http://www.flexauthority.com/articlesIndex.cfm | 范例http://www.flexauthority.com/Samples/FlixEngine/index.html
3,Turbine Video Engine http://www.blue-pacific.com/products/turbinevideosdk/default.htm
4,Video to Flash Console http://www.geovid.com/Video_to_Flash_Console

錄像/實時廣播Record/Broadcast
場景:想制作一個語音視頻Blog滿足自戀的欲望嗎?
1,RED5 http://www.osflash.org/red5
2,Flash Media Server http://www.macromedia.com/go/fms
在線編碼,分享視頻Online Encode & Share
場景:想不花錢就可以在線分享你的視頻嗎?
1,Google Video http://video.google.com/
2,You Tube http://www.youtube.com/
本地 FLV 文件播放器FLV Player
場景:拿到了 FLV 文件不知道怎么播放了.
1,martijndevisser FLV Player http://www.martijndevisser.com/2005/10/flv_player_updated.html
2,FlashGuru FLV Player http://www.flashguru.co.uk/free-tool-flash-video-player
3,FCZone FLV Player http://fczone.com/2006/01/fms-media-player.cfm
在線 FLV 文件播放器Online FLV Player
場景:知道一個在線FLV地址,又懶得下載和安裝播放器.
1,Loadr http://dengjie.com/loadr
2,Google Player Generator http://dengjie.com/loadr/r.swf?file=/temp/google_player.swf&clr=000FFF
更多相關(guān)軟件看這篇文章:Flash 網(wǎng)站的視頻策略 http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_14571

此文章轉(zhuǎn)自 shadow

ffmpeg 參數(shù)

利用ffmpeg+mencoder視頻轉(zhuǎn)換的總結(jié)
http://www.yitian130.com/article.asp?id=69

flv視頻轉(zhuǎn)換和flash播放的解決方案筆記
http://blog.verycd.com/dash/showentry=35982

Youtube技術(shù)原理
1. 網(wǎng)頁文件允許上傳視頻文件(這個和上傳其他文件一樣的)(作者用的是python的架構(gòu))
2. 后臺調(diào)用ffmpeg對上傳的視頻進行壓縮,輸出flv格式的文件。這個開源程序win32和linux都有實現(xiàn),所以可以適應(yīng)不用的主機環(huán)境。
3. 使用flvtools處理flv文件,標記上時長、幀速、關(guān)鍵幀等元數(shù)據(jù),這樣的flash文件才可以拖放。
4. 使用 ffmpeg 產(chǎn)生flv文件的縮略,和大圖像文件的縮略圖是一個道理。
5. 使用適當?shù)膄lv播放器在網(wǎng)頁中播放服務(wù)器端生成的flv文件。
更多詳細:http://www.gotonx.com/bbs/simple/index.php?t6322.html

安裝和使用ffmpeg轉(zhuǎn)換視頻為flv文件(windows和linux)

1、環(huán)境winxp-sp2下:
從 http://ffdshow.faireal.net/mirror/ffmpeg/ 下載
最新版本的 FFMpeg.exe直接用就行(須rar解壓)。

以下的東西是為對ffmpeg無法解析的文件格式wmv9,rm,rmvb等轉(zhuǎn)換用的,
從http://mediacoder.sourceforge.net/download_zh.htm下載
最新版本的mediacoder的安裝后;找到其中的mencoder.exe;drv43260.dll和pncrt.dll三個文件。

2、環(huán)境linuxas4。3下:

a、先裝mp3在linux下的包:lame-3.97.tar.gz;
tar -xvzf lame-3.97.tar.gz;
cd lame-3.97;
//默認是裝在/usr/local下;
//–prefix=/usr/此參數(shù)一定要便于調(diào)用os的其它系統(tǒng)包
//–enable-shared此參數(shù)一定要
./configure –enable-shared –prefix=/usr/;
make;
make install;

b、支持3gp格式,這也是現(xiàn)在好多手機支持的格式,因為手機用戶是我們的主要用戶,所以也得支持編譯

編譯的時候加上–enable-amr_nb –enable-amr_wb參數(shù)就行,根據(jù)編譯系統(tǒng)的提示,所以我們得下載一些編譯3gp所需得文件。

wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
解壓以后把里面的文件都拷貝到libavcodec/amrwb_float/

wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip
解壓以后把里面的文件都拷貝到libavcodec/amr_float/

c、mpg4 aac格式支持,由于服務(wù)器還針對手機用戶服務(wù),所以,類似aac,mpg4鈴聲格式的支持,我們也得做。這里我們安裝faad2和faac就行
下載請到http://www.audiocoding.com/modules/mydownloads/

tar zxvf faad2-2.5.tar.gz
cd faad2
echo > plugins/Makefile.am
echo > plugins/xmms/src/Makefile.am
sed -i ‘/E_B/d’ configure.in
autoreconf -vif
./configure –prefix=/usr
make &&
make install

tar zxvf faac-1.25.tar.gz
cd faac
sed -i ‘/[2de].M/d’ configure.in
echo ‘AC_OUTPUTcommon/Makefile common/mp4v2/Makefile libfaac/Makefilefrontend/Makefile include/Makefile Makefile’ >> configure.in
autoreconf -vif
./configure –prefix=/usr
make &&
make install

d、支持xvid; x264,現(xiàn)在最流行的兩種高質(zhì)量的壓縮格式
xvid的編譯安裝
wget http://downloads.xvid.org/downloads/xvidcore-1.1.2.tar.gz
tar zvxf xvidcore-1.1.2.tar.gz

cd xvidcore-1.1.2/build/generic
./configure –prefix=/usr –enable-shared
make
make install

x264的獲取同樣是采用svn方式:
svn co svn://svn.videolan.org/x264/trunk x264

linux下須從http://www.kernel.org/pub/software/devel/nasm/binaries/linux/下載nasm-0.98.39-1.i386.rpm

在linux下安裝就行了。。。

rpm -ivh nasm-0.98.39-1.i386.rpm(如-ivh不行就用-Uvh)

cd x264
./configure –prefix=/usr –enable-shared
make
make install

e、安裝ffmpeg:
//as4.3系統(tǒng)已經(jīng)支持ac3編碼,只要加–enable-a52 –enable-gpl參數(shù)就行
//我加–enable-shared參數(shù)沒有成功
./configure –prefix=/opt/ffmpeg/ –enable-mp3lame –enable-amr_nb–enable-amr_wb –enable-a52 –enable-xvid –enable-x264 –enable-faad–enable-faac –enable-gpl –enable-pthreads;
make clean;//一定要;否則有可能沒聲音。
make;
make install;

在相應(yīng)windows和linux目錄下(有ffmpeg文件的;以下用linux下說明):
3、使用ffmpeg轉(zhuǎn)換視頻為flv文件:
./ffmpeg -i ‘/opt/input/1.mpg’ -y -ab 32 -ar 22050 -b 800000 -s 640*480 /opt/output/1.flv’
ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)

對ffmpeg無法解析的文件格式wmv9,rm,rmvb等,
可以先用別的工具(mencoder)轉(zhuǎn)換為aviffmpeg能解析的格式.
./mencoder /input/a.rmvb -oac lavc -lavcopts acodec=mp3:abitrate=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o /output/a.avi
在執(zhí)行./ffmpeg -i ‘/opt/input/a.avi’ -y -ab 32 -ar 22050 -b 800000 -s 640*480 /opt/output/a.flv’就可以轉(zhuǎn)了。

4、視頻抓圖:
./ffmpeg -i ‘/opt/input/a.flv’ -y -f image2 -t 1 -s 300*200 ‘/opt/output/1.jpg’ //獲取靜態(tài)圖

./ffmpeg -i ‘/opt/input/a.mpg’ -vframes 30 -y -f gif ‘/output/1.gif’ //獲取動態(tài)圖;
不提倡抓gif文件;因為抓出的gif文件大而播放不流暢。

用mencoder在線轉(zhuǎn)換視頻格式并控制視頻品質(zhì)
http://blog.sina.com.cn/u/490343a7010006z6

billy 備忘錄 , 

我使用的flv轉(zhuǎn)換代碼

2008年11月6日

首先解壓視頻文件

rarcomm = “cmd.exe /c ” & “e:cnrarrar.exe  x ” & filepath & rarname & ” -w ” & swfpath & “  -c -y -inul”

獲取視頻截圖

getpic = “cmd.exe /c F:mencodermplayer ” & newswf & ” -ss 1 -nosound -vo jpeg:outdir=v -frames 2 ”
FileCopy App.Path & “v0000002.jpg”, picname
Kill App.Path & “v0000001.jpg”
Kill App.Path & “v0000002.jpg”

獲取視頻信息

vinfo = “cmd.exe /c F:mencodermplayer -identify ” & newswf & ” -nosound -vc dummy -vo null >>” & picpath & id & “.txt”

這里原來考慮直接使用上面getpic所獲得的信息,但其主要是少一項視頻時間,沒有辦法只有單獨獲取了

轉(zhuǎn)換成flv

flvcom = “cmd.exe /c F:mencodermencoder.exe ” & newswf & ” -o “”” & flvname & “”” -of lavf -oac mp3lame -lameopts abr:br=32:vol=1 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=400:mbd=2:v4mv:turbo:vb_strategy=1:last_pred=2:trell:mv0:
dia=4:cbp -vf scale=320:-3 -subpos 100  -subwidth 100 -subfont-text-scale 3 -utf8 -font “”F:mencoderMSYHBD.TTF”” -sub “”F:mencodertest.srt”””

水印的問題:

mencoder使用srt,主要的問題是水平位置的控制 和字幕編碼的問題。

水平位置:好像沒有具體的參數(shù)來配置字幕的水平位置只有-subpos來控制垂直的位置,經(jīng)過測試你可以在srt字幕文件中以空格的方式來控制水平(視頻的寬度也有影響,需要根據(jù)視頻寬度調(diào)整),另外-subwidth 決定了字幕的寬度,是否會分兩行顯示。
對于rmvb wmv等可變碼率格式的文件在轉(zhuǎn)換時要確定幀率否則音畫不同步 -ofps 12

billy 我的網(wǎng)站 , , 

【轉(zhuǎn)】ffmpeg+mencoder環(huán)境搭建和視頻處理總結(jié)

2008年11月6日

 ffmpeg+mencoder幾乎可以完成目前基于web的播客平臺任何音視頻處理的操作.如果還需要添加一些什么的話,那么就是視頻在線錄制功能了,這個也可以用ffmpeg+fms來完成,因此一般的類似于YouTube的一些可見功能都可以在ffmpeg+mencoder+fms來做后臺實現(xiàn).由于fms沒有實踐,因此這里不描述.
 本文檔有三部分:
 1)ffmpeg+mencoder環(huán)境搭建
 2)常見操作說明
 3)個人的一些使用心得

1.ffmpeg+mencoder環(huán)境搭建

 1)概論
 音視頻界眾多的編解碼協(xié)議和各個公司定義的專用格式導致目前的視頻音頻文件紛繁復雜,單純的ffmpeg支持的格式并不完全包括所有種類,至少swf,rmvb(rv4)目前的版本是不支持的.同時wma9似乎可以支持了.但沒有測試.同時mencoder能支持rm,rmvb等格式,但是從視頻中獲取某幀截圖的工作只能由ffmpeg完成.因此可以采用ffmpeg+mencoder完成目前所有流行格式的視頻壓縮轉(zhuǎn)換,設(shè)置視頻信息,截取視頻中的圖片等功能了,同時,采用其他的一些開源工具如MediaInfo可以獲取視頻的元數(shù)據(jù)信息.

 2)ffmpeg篇
 首先獲取軟件包:ffmpeg,lame(支持mp3),ogg vorbis,x264(h264 codec),xvid,3gp,libdts,mpeg4 aac.這些軟件包在71.21的/home/zhengyu/tools里面都能找到.如果需要網(wǎng)上下載的話,可以提供下載地址.
   ffmpeg官網(wǎng)下載:http://ffmpeg.mplayerhq.hu…
   如果官網(wǎng)下載有問題的,xplore也提供了1月30的snapshot:下載ffmpeg.

   lame下載:當前版本為3.97,http://sourceforge.net/pro…
    或者到xplore下載lame.
   ogg vorbis:這個一般的redhat自帶,不需要下載.可以去看看/usr/lib/libvorbis.a在不在,如果不在可以yum install或apt-get install.
   xvid下載:http://downloads.xvid.org/…, xplore下載xvid.
   x264下載:這個可以去ftp://ftp.videolan.org/下尋找最近的snapshot下載,或者svn獲取,注意如果ffmpeg是什么時候的,x264的snapshot也應(yīng)該是什么時候的,不然編譯的時候容易報錯.ftp://ftp.videolan.org/pub…
   xplore下載x264的1月29日的snapshot.
   libdts:http://download.chinaunix…., xplore下載libdts:
 上面的軟件包除了ffmpeg之外,在下載完成后解包,編譯的參數(shù)都是./configure –prefix=/usr –enable-shared;make;sudo make install

   mpeg4 aac/aad2:http://www.audiocoding.com…,http://www.audiocoding.com…
 faac和faad2在下載解包之后需要自己automake生成編譯文件.其中faac的1.25版本需要將內(nèi)置的configure.in文件最后的AM_OUTPUT中的幾個續(xù)行去掉,并取消分行.然后按照bootstrap里面的操作進行,無非是aclocal -I .;autoheader;libtoolize –automake;automake -a –copy;autoconfig(或者前面的由autoreconf -vif替代);./configure –prefix=/usr –enable-shared;make;sudo make install;
 faad2的2.5版本需要修改內(nèi)置的configure.in文件,不然會在沒有l(wèi)ibbmp時編譯會通不過.找到configure.in中下面一段:

引用
if test x$WITHBMP = xyes; then
 AC_DEFINE([HAVE_BMP], 1, [User wants beep media player plugin built])
 AM_CONDITIONAL([HAVE_XMMS], true)
 AM_CONDITIONAL([HAVE_BMP], true)
fi

if test x$WITHDRM = xyes; then
 改成
if test x$WITHBMP = xyes; then
 AC_DEFINE([HAVE_BMP], 1, [User wants beep media player plugin built])
 AM_CONDITIONAL([HAVE_XMMS], true)
 AM_CONDITIONAL([HAVE_BMP], true)
else
 AC_MSG_NOTICE(no bmp build configured)
 AM_CONDITIONAL([HAVE_BMP], false)
fi

if test x$WITHDRM = xyes; then

 然后autoreconf -vif;./configure –prefix=/usr –enable-shared;make;sudo make install;
     這里提供兩個已經(jīng)修改好的.只需要make clean;make;sudo make install;的tar包.faac1.25下載,faad2.5下載.

   3gp支持:在編譯ffmpeg加入–enable-amr_nb –enable-amr_wb的時候,會有提示,下載:http://www.3gpp.org/ftp/Sp…,解壓的源代碼文件以后把里面的文件都拷貝到ffmpeg的源代碼目錄下libavcodec/amrwb_float;然后下載:http://www.3gpp.org/ftp/Sp…,解壓得源代碼文件以后把里面的文件都拷貝到ffmpeg解包目錄下的libavcodec/amr_float,然后交給ffmpeg編譯去做了.
   也可以在這里下載這兩個包:amrwb_float下載,amr_float下載.

   PS: 其實上面很多l(xiāng)ib庫可以不需要手動編譯的.在安裝開源的vlc播放器時有很多自己都可以通過yum自動安裝好.如果嫌麻煩可以先用yum安裝好vlc,例如這樣:

引用
sudo rpm -ivh http://rpm.livna.org/livna…
sudo yum install vlc
/* sudo yum install python-vlc mozilla-vlc (optionnal) */

   于是,便可以看到:

引用
Installing:
vlc                     i386       0.8.6c-4.lvn6    livna             6.5 M
Installing for dependencies:
a52dec                  i386       0.7.4-10.lvn6    livna              49 k
aalib                   i386       1.4.0-0.11.rc5.fc6  extras             74 k
dirac-libs              i386       0.7.0-1.fc6      extras            386 k
faac                    i386       1.25-2.lvn6      livna              82 k
faad2                   i386       2.0-19.20050131.lvn6  livna             209 k
ffmpeg-libs             i386       0.4.9-0.37.20070503.lvn6  livna             1.6 M
freeglut                i386       2.4.0-11.fc6     extras            142 k
gsm                     i386       1.0.12-3.fc6     extras             27 k
imlib2                  i386       1.3.0-3.fc6      extras            576 k
jack-audio-connection-kit  i386       0.103.0-1.fc6    extras            138 k
lame-libs               i386       3.97-4.lvn6      livna             331 k
libcaca                 i386       0.99-0.1.beta11.fc6  extras            160 k
libcddb                 i386       1.3.0-1.fc6      extras             71 k
libcdio                 i386       0.78.2-2.fc6     extras            268 k
libdca                  i386       0.0.2-3.lvn6     livna             103 k
libdvbpsi               i386       0.1.5-2.lvn6     livna              39 k
libdvdnav               i386       0.1.10-3.20070503.lvn6  livna             123 k
libdvdread              i386       0.9.7-2.fc6      extras             66 k
libebml                 i386       0.7.7-2.fc6      extras             72 k
libfreebob              i386       1.0.0-3.fc6      extras            155 k
libid3tag               i386       0.15.1b-3.fc6    extras             44 k
libmatroska             i386       0.8.0-4.fc6      extras            199 k
libmodplug              i386       1:0.8.4-1.fc6    extras            167 k
libmp4v2                i386       1.5.0.1-3.fc6    extras            279 k
libmpcdec               i386       1.2.2-4.fc6      extras             30 k
libshout                i386       2.2.2-1.fc6      extras             43 k
libsndfile              i386       1.0.17-2.fc6     extras            227 k
libtar                  i386       1.2.11-8.fc6     extras             29 k
libupnp                 i386       1.6.0-1.fc6      extras            101 k
lirc                    i386       0.8.1-1.fc6      extras            240 k
mpeg2dec                i386       0.4.1-2.lvn6     livna             101 k
svgalib                 i386       1.9.25-3.fc6     extras            465 k
twolame                 i386       0.3.10-1.lvn6    livna              79 k
vcdimager               i386       0.7.23-3.lvn6    livna             657 k
x264                    i386       0-0.8.20061028.lvn6  livna             241 k
xosd                    i386       2.2.14-9.fc6     extras             47 k
xvidcore                i386       1.1.3-1.lvn6     livna             242 k

   這些codec都安裝完畢之后便可以編譯ffmpeg了,編譯參數(shù)如下:
 ./configure –prefix=/usr/local –enable-gpl –enable-shared –enable-mp3lame –enable-amr_nb –enable-amr_wb –enable-amr_if2 –enable-libogg –enable-vorbis –enable-xvid –enable-a52 –enable-a52bin –enable-faadbin –enable-dts –enable-pp –enable-faad –enable-faac –enable-x264 –enable-pthreads –disable-ffserver –disable-ffplay
 make
 (sudo make install)
 然后就可以嘗試用ffmpeg做視頻轉(zhuǎn)換截圖了.
   當然,上面那些codec的編譯是相當乏味的.你也可以根本不理會這些.因為最新版本的ffmpeg已經(jīng)比以前支持更多的格式了.因此也可以只安裝lame,xvid,x264就可以了.下面是兩種配置下支持的格式diff -w的結(jié)果:

引用
2c2
<   configuration:  –prefix=/usr –enable-gpl –enable-shared –enable-mp3lame –enable-amr_nb –enable-amr_wb –enable-amr_if2 –enable-libogg –enable-vorbis –enable-xvid –enable-a52 –enable-a52bin –enable-faadbin –enable-dts –enable-pp –enable-faad –enable-faac –enable-x264 –enable-pthreads –disable-ffserver –disable-ffplay

>   configuration:  –prefix=/usr/local –enable-mp3lame
6c6
<   built on Jan 30 2007 17:55:22, gcc: 4.1.1 20061011 (Red Hat 4.1.1-30)

>   built on Jan 30 2007 17:46:19, gcc: 4.1.1 20061011 (Red Hat 4.1.1-30)
40c40
<  DE gxf             GXF format

>  D  gxf             GXF format
72c72
<  DE ogg             Ogg Vorbis

>  D  ogg             Ogg
111d110
<  DEA    aac
113c112
<  DEA    ac3

>   EA    ac3
132,133d130
<  DEA    amr_nb
<  DEA    amr_wb
147d143
<  D A    dts
164c160
<  DEV DT h264

>  D V DT h264
190d185
<  D A    mpeg4aac
275d269
<   EV    xvid

   
   3)mencoder篇
   首先獲取mplayer軟件包極其mplayer官網(wǎng)上自帶的codecs.如果喜歡mplayer,也可以下載gui和font.關(guān)于mplayer-1.0rc1在71.21的/home/zhengyu/tools中能找到.如果需要網(wǎng)上下載,可以去官網(wǎng):http://www.mplayerhq.hu/de…下載rc1地址如下:http://www1.mplayerhq.hu/M…最新的svn版本:http://www1.mplayerhq.hu/M…官網(wǎng)同時也給出了一些codec,其中就有rm格式的codec:http://www1.mplayerhq.hu/M…
    xplore也提供下載,mplayer1.0rc1下載,codec下載.

   下載完成之后,將tar vxjf essential-20061022.tar.bz2;sudo mkdir -p /usr/lib/codecs;sudo cp -rf essential-20061022/* /usr/lib/codecs;然后解包mplayer,按如下方式編譯:

./configure –prefix=/usr/local –enable-gui –enable-largefiles  –enable-gif –enable-png –enable-jpeg –language=zh_CN –with-codecsdir=/usr/lib/codecs/
make
(sudo make install)

   然后就可以使用mencoder,當然也有一個沒有g(shù)ui的mplayer可以播放各種視頻了.不過我們需要的是mencoder.至此,ffmpeg+mencoder搭建完成.

2.常見操作說明
 對于ffmpeg,可以將除swf,rmvb,wmav9以外的視頻/音頻格式轉(zhuǎn)換成flv/mp3,同時可以截取這些視頻文件中的某個時間的該幀圖片.這些實際上就是一個視頻播客顯示的部分.對于mencoder,支持各種常見格式的視頻/音頻轉(zhuǎn)換成flv/mp3.或者轉(zhuǎn)換成avi.
 1)ffmpeg篇:
 ffmpeg的命令行參數(shù)因為太多,這里不列出,可以用ffpmeg -h可以查看到.列出非高級參數(shù)如下:

引用
Main options:
-L                  show license
-h                  show help
-version            show version
-formats            show available formats, codecs, protocols, …
-f fmt              force format
-i filename         input file name
-y                  overwrite output files
-t duration         set the recording time
-fs limit_size      set the limit file size
-ss time_off        set the start time offset
-itsoffset time_off  set the input ts offset
-title string       set the title
-timestamp time     set the timestamp
-author string      set the author
-copyright string   set the copyright
-comment string     set the comment
-album string       set the album
-v verbose          control amount of logging
-target type        specify target file type (”vcd”, “svcd”, “dvd”, “dv”, “dv50″, “pal-vcd”, “ntsc-svcd”, …)
-dframes number     set the number of data frames to record
-scodec codec       force subtitle codec (’copy’ to copy stream)
-newsubtitle        add a new subtitle stream to the current output stream
-slang code         set the ISO 639 language code (3 letters) of the current subtitle stream

Video options:
-vframes number     set the number of video frames to record
-r rate             set frame rate (Hz value, fraction or abbreviation)
-s size             set frame size (WxH or abbreviation)
-aspect aspect      set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)
-croptop size       set top crop band size (in pixels)
-cropbottom size    set bottom crop band size (in pixels)
-cropleft size      set left crop band size (in pixels)
-cropright size     set right crop band size (in pixels)
-padtop size        set top pad band size (in pixels)
-padbottom size     set bottom pad band size (in pixels)
-padleft size       set left pad band size (in pixels)
-padright size      set right pad band size (in pixels)
-padcolor color     set color of pad bands (Hex 000000 thru FFFFFF)
-vn                 disable video
-vcodec codec       force video codec (’copy’ to copy stream)
-sameq              use same video quality as source (implies VBR)
-pass n             select the pass number (1 or 2)
-passlogfile file   select two pass log file name
-newvideo           add a new video stream to the current output stream

Subtitle options:
-scodec codec       force subtitle codec (’copy’ to copy stream)
-newsubtitle        add a new subtitle stream to the current output stream
-slang code         set the ISO 639 language code (3 letters) of the current subtitle stream

Audio/Video grab options:
-vd device          set video grab device
-vc channel         set video grab channel (DV1394 only)
-tvstd standard     set television standard (NTSC, PAL (SECAM))
-ad device          set audio device
-grab format        request grabbing using
-gd device          set grab device

Advanced options:
-map file:stream[:syncfile:syncstream]  set input stream mapping
-map_meta_data outfile:infile  set meta data information of outfile from infile
-benchmark          add timings for benchmarking
-dump               dump each input packet
-hex                when dumping packets, also dump the payload
-re                 read input at native frame rate
-loop_input         loop (current only works with images)
-loop_output        number of times to loop output in formats that support looping (0 loops forever)
-threads count      thread count
-vsync              video sync method
-async              audio sync method
-vglobal            video global header storage type
-copyts             copy timestamps
-shortest           finish encoding within shortest input
-dts_delta_threshold   timestamp discontinuity delta threshold
-ps size            set packet size in bits
-muxdelay seconds   set the maximum demux-decode delay
-muxpreload seconds  set the initial demux-decode delay

     如果這些都明白了,并且有編程基礎(chǔ),你就可以去參與ffmpeg開發(fā)了.其實這些堆積起來的命令95%一般是用不上的.這里介紹一些簡單的常見的命令:
-fromats 顯示可用的格式
-f fmt 強迫采用格式fmt
-I filename 輸入文件
-y 覆蓋輸出文件
-t duration 設(shè)置紀錄時間 hh:mm:ss[.xxx]格式的記錄時間也支持(截圖需要)
-ss position 搜索到指定的時間 [-]hh:mm:ss[.xxx]的格式也支持
-title string 設(shè)置標題
-author string 設(shè)置作者
-copyright string 設(shè)置版權(quán)
-comment string 設(shè)置評論
-target type 設(shè)置目標文件類型(vcd,svcd,dvd),所有的格式選項(比特率,編解碼以及緩沖區(qū)大小)自動設(shè)置,只需要輸入如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
-hq 激活高質(zhì)量設(shè)置

-b bitrate 設(shè)置比特率,缺省200kb/s
-r fps 設(shè)置幀頻,缺省25
-s size 設(shè)置幀大小,格式為WXH,缺省160X128.下面的簡寫也可以直接使用:Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576
-aspect aspect 設(shè)置橫縱比 4:3 16:9 或 1.3333 1.7777
-croptop/botton/left/right size 設(shè)置頂部切除帶大小,像素單位
-padtop/botton/left/right size 設(shè)置頂部補齊的大小,像素單位
-padcolor color 設(shè)置補齊條顏色(hex,6個16進制的數(shù),紅:綠:藍排列,比如 000000代表黑色)
-vn 不做視頻記錄
-bt tolerance 設(shè)置視頻碼率容忍度kbit/s
-maxrate bitrate設(shè)置最大視頻碼率容忍度
-minrate bitreate 設(shè)置最小視頻碼率容忍度
-bufsize size 設(shè)置碼率控制緩沖區(qū)大小
-vcodec codec 強制使用codec編解碼方式. 如果用copy表示原始編解碼數(shù)據(jù)必須被拷貝.(很重要)

-ab bitrate 設(shè)置音頻碼率
-ar freq 設(shè)置音頻采樣率
-ac channels 設(shè)置通道,缺省為1
-an 不使能音頻紀錄
-acodec codec 使用codec編解碼

-vd device 設(shè)置視頻捕獲設(shè)備,比如/dev/video0
-vc channel 設(shè)置視頻捕獲通道 DV1394專用
-tvstd standard 設(shè)置電視標準 NTSC PAL(SECAM)
-dv1394 設(shè)置DV1394捕獲
-av device 設(shè)置音頻設(shè)備 比如/dev/dsp

-map file:stream 設(shè)置輸入流映射
-debug 打印特定調(diào)試信息
-benchmark 為基準測試加入時間
-hex 傾倒每一個輸入包
-bitexact 僅使用位精確算法 用于編解碼測試
-ps size 設(shè)置包大小,以bits為單位
-re 以本地幀頻讀數(shù)據(jù),主要用于模擬捕獲設(shè)備
-loop 循環(huán)輸入流。只工作于圖像流,用于ffserver測試

     ffmpeg進行操作的常用方法:

   1.轉(zhuǎn)換成flv文件:ffmpeg -i infile.* -y (-ss second_offset -ar ar -ab ab -r vr -b vb -s vsize) outfile.flv
              其中second_offset是從開始的多好秒鐘.可以支持**:**:**格式,至于ar,ab是音頻的參數(shù),可以指定ar=22050,24000,44100(PAL制式),48000(NTSC制式),后兩種常見,ab=56(視音頻協(xié)議的codec而定,如果要聽高品質(zhì),則80以上).vr,vb,vsize是視頻參數(shù),可以指定vr=15,25(PAL),29(NTSC),vb=200,500,800,1500(視視頻協(xié)議的codec而定,可以通過查看專業(yè)的codec說明文檔獲取,如果你手頭有一份詳細的各種codec的文檔,請?zhí)峁┮环萁o我,不勝感激.)
              還有一些參數(shù)-acodec ac -vcodec vc(ac指定音頻codec,ar和ab可以省去,vc指定視頻codec,vr和vb可以省去,自動采用相應(yīng)的codec參數(shù))
              還有很多高級參數(shù),如-qmin,-qcale等,請查看詳細文檔.
              還有-an和-vn參數(shù),分別從多媒體文件中提取出純粹視頻和音頻.
              另,如果你是用shell批量處理,請使用-y參數(shù)覆蓋生成flv.

   2.截取圖片:ffmpeg -i infile.* -y (-ss second_offset) -t 0.001 -s msize (-f image_fmt) outfile.jpg
            其中second_offset同上,msize同vsize,圖片大小.image_fmt=image2強制使用jpg,image_fmt=gif,強制使用gif格式.
            還可以用-vframes fn指定截取某幀圖片,fn=1,2,3,…

 
 2)mencoder篇:
 mencoder的作用主要在視頻轉(zhuǎn)碼方面.在安裝完mplayer后,mencoder也編譯生成了.可以man mencoder獲取mencoder的說明文檔.
 mencoder的參數(shù)更加復雜,不過也無非是音頻處理視頻處理兩個方面,可以參看網(wǎng)絡(luò)例子:http://www.masoncn.com/pos…這里不作詳細的列舉了.

   mencoder進行操作的常用方法: mencoder infile.* -o outfile.* [-ovc 目標視頻格式] [-oac 目標音頻格式] [-of 目標文件格式]

   1.轉(zhuǎn)換成flv文件: mencoder infile.* -o outfile.flv -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=150:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 22050
                                mencoder infile.rmvb -o outfile.flv -vf scale=-3:150 -ofps 12 -oac mp3lame -ovc xvid -xvidencopts bitrate=112

   2.轉(zhuǎn)換成avi文件: mencoder infile.* -o outfile.avi -of avi -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600

   3.轉(zhuǎn)換成wmv文件(復雜寫法,其中高級參數(shù)可以省去): mencoder infile.* -o outfile.wmv -of lavf -ofps 25 -oac mp3lame -lameopts cbr:preset=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=768:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=320:240 -srate 22050 -sws 9 -subcp cp936 -subpos 0 -subalign 0 -subfont-text-scale 3 -lavfopts i_certify_that_my_video_strea

   4.截圖:  mplayer infile -ss START_TIME -noframedrop -nosound -vo jpeg -frames N

   其中-ovc,-oac和-of是必須的,-ovc是指定視頻codec,指定了ovc之后通常帶一個該codec的opt參數(shù),-oac是指定音頻codec,也會在其后帶一個codec的opt參數(shù).可以指定細節(jié)以決定視頻音頻質(zhì)量和轉(zhuǎn)換速率.具體的細節(jié)可以參看專業(yè)的技術(shù)文檔.

3.個人的一些心得
 在視頻播客網(wǎng)站上,對于音視頻本身一般存在如下幾個問題:
   1)有些格式的音視頻文件不支持.不能做到全的問題.
   2)上傳的同樣內(nèi)容,但不同格式音視頻排重的問題.從存儲和應(yīng)用兩個方面描述這個問題會有不同層次的解決方案.
   3)對于某些格式的音視頻文件,既有可能是純粹音頻的,也可以是純粹視頻的.如rm格式.怎樣區(qū)分這種文件以方便應(yīng)用的問題.
   4)音視頻檢索,視頻描述能不能做到內(nèi)容方式而不是用戶定義關(guān)鍵字的方式.
   5)音視頻相似度的利用和處理.
   6)音視頻文件的下載獲取.

   對于第一個問題采用ffmpeg+mencoder可以獲取一個讓人可以接受的解決辦法.第三個問題可以在上傳之后安裝一個前端過濾程序,區(qū)分音頻文件和視頻文件,已經(jīng)有相應(yīng)的開源工具和代碼做這些事情.對于第二個問題,首先是統(tǒng)一格式,然后計算音視頻文件的hash,在存儲部分采用分布式CAS技術(shù)存儲,應(yīng)用方面構(gòu)架在CAS之上.而第四個問題,第五個問題有待深入研究.第六個問題可以考慮p2p的方式,不過這個不是太重要.
    對于采用shell在ffmpeg+mencoder+MediaInfo環(huán)境下處理視頻隊列和截取視頻文件,可以參看這篇文章.

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ffmpeg mencoder環(huán)境搭建和視頻處理總結(jié)(轉(zhuǎn))
ffmpeg編譯及使用
java調(diào)用ffmpeg執(zhí)行視頻轉(zhuǎn)換-轉(zhuǎn)載
java實現(xiàn)視頻文件轉(zhuǎn)換為flv(帶文件縮略圖)
JAVA+ffmpeg+mencoder轉(zhuǎn)換視頻
java實現(xiàn)視頻上傳和播放SpringMVC + Mybatis + ckplayer+ffmpeg+mencoder
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服