久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ffmpeg和Mencoder使用實例小全

 緣夢逍遙 2010-11-23

下載電影的時候,,我們總希望在全部下載完成之前能夠預覽一下影片內(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指定開始的時間,結合-frames參數(shù),,限定從某個時間開始,、截取幾幀圖像。為了體現(xiàn)整個影片的內(nèi)容,,我需要在影片中間隔時間相同的幾個 點,、每個點截取1幀圖像,所以按道理應該用-frames1,,但是mplayer這樣截圖的情況下,,第一幀似乎永遠都會截取到一個黑屏,所以我常用- frames2,。截取下來的圖像保存在了當前目錄,,名稱從00000001.jpg開始依次遞增,按照-frames2,,就是取00000002.jpg 為結果,,刪除00000001.jpg即可。經(jīng)過簡單實驗,,在截取wmv,、rmvb影片時,,前面的好幾幀都會是黑屏,也只能參考上面的做法多取幾幀了,。

為 了取影片中間隔大致相同的幾個點,,可以用-ss指定時間,也可以用-sb指定開始字節(jié),,在我的實際使用中,,使用-sb只會得到黑屏,所以通過文件大小來設 置間隔點的辦法不行,,只能用-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和結束-ss TOTAL_TIME_OF_VIDEO截取下來都會是黑屏,,在處理的時候要分別加上和減去若干秒,。

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

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

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

下面再列一些在網(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./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./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,將保存到用戶主目錄中,。其他選項可查閱其說明文檔,。
如果你只想錄制一個應用程序窗口或者桌面上的一個固定區(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:///archives/ffmpeg.html

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

轉換為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./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./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:///archives/join_several_videos.html

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

錄像/實時廣播Record/Broadcast
場景:想制作一個語音視頻Blog滿足自戀的欲望嗎?
1,RED5 http://www./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./
本地 FLV 文件播放器FLV Player
場景:拿到了 FLV 文件不知道怎么播放了.
1,martijndevisser FLV Player http://www./2005/10/flv_player_updated.html
2,FlashGuru FLV Player http://www./free-tool-flash-video-player
3,FCZone FLV Player http:///2006/01/fms-media-player.cfm
在線 FLV 文件播放器Online FLV Player
場景:知道一個在線FLV地址,又懶得下載和安裝播放器.
1,Loadr http:///loadr
2,Google Player Generator http:///loadr/r.swf?file=/temp/google_player.swf&clr=000FFF
更多相關軟件看這篇文章:Flash 網(wǎng)站的視頻策略 http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_14571

此文章轉自 shadow

ffmpeg 參數(shù)

利用ffmpeg+mencoder視頻轉換的總結
http://www./article.asp?id=69

flv視頻轉換和flash播放的解決方案筆記
http://blog./dash/showentry=35982

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

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

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

以下的東西是為對ffmpeg無法解析的文件格式wmv9,,rm,,rmvb等轉換用的,
從http://mediacoder./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./ftp/Specs/archive/26_series/26.204/26204-510.zip
解壓以后把里面的文件都拷貝到libavcodec/amrwb_float/

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

c,、mpg4 aac格式支持,,由于服務器還針對手機用戶服務,所以,,類似aac,,mpg4鈴聲格式的支持,我們也得做,。這里我們安裝faad2和faac就行
下載請到http://www./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./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./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;

在相應windows和linux目錄下(有ffmpeg文件的;以下用linux下說明):
3,、使用ffmpeg轉換視頻為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)轉換為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’就可以轉了,。

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在線轉換視頻格式并控制視頻品質(zhì)
http://blog.sina.com.cn/u/490343a7010006z6

billy 備忘錄 , 

我使用的flv轉換代碼

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所獲得的信息,,但其主要是少一項視頻時間,,沒有辦法只有單獨獲取了

轉換成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等可變碼率格式的文件在轉換時要確定幀率否則音畫不同步 -ofps 12

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

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

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完成目前所有流行格式的視頻壓縮轉換,設置視頻信息,截取視頻中的圖片等功能了,同時,采用其他的一些開源工具如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.…
   如果官網(wǎng)下載有問題的,xplore也提供了1月30的snapshot:下載ffmpeg.

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

   mpeg4 aac/aad2:http://www.…,http://www.…
 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./ftp/Sp…,解壓的源代碼文件以后把里面的文件都拷貝到ffmpeg的源代碼目錄下libavcodec/amrwb_float;然后下載:http://www./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…
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做視頻轉換截圖了.
   當然,上面那些codec的編譯是相當乏味的.你也可以根本不理會這些.因為最新版本的ffmpeg已經(jīng)比以前支持更多的格式了.因此也可以只安裝lame,xvid,x264就可以了.下面是兩種配置下支持的格式diff -w的結果:

引用
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.關于mplayer-1.0rc1在71.21的/home/zhengyu/tools中能找到.如果需要網(wǎng)上下載,可以去官網(wǎng):http://www./de…下載rc1地址如下:http://www1./M…最新的svn版本:http://www1./M…官網(wǎng)同時也給出了一些codec,其中就有rm格式的codec:http://www1./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,當然也有一個沒有gui的mplayer可以播放各種視頻了.不過我們需要的是mencoder.至此,ffmpeg+mencoder搭建完成.

2.常見操作說明
 對于ffmpeg,可以將除swf,rmvb,wmav9以外的視頻/音頻格式轉換成flv/mp3,同時可以截取這些視頻文件中的某個時間的該幀圖片.這些實際上就是一個視頻播客顯示的部分.對于mencoder,支持各種常見格式的視頻/音頻轉換成flv/mp3.或者轉換成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

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

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

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

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

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

     ffmpeg進行操作的常用方法:

   1.轉換成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可以省去,自動采用相應的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的作用主要在視頻轉碼方面.在安裝完mplayer后,mencoder也編譯生成了.可以man mencoder獲取mencoder的說明文檔.
 mencoder的參數(shù)更加復雜,不過也無非是音頻處理視頻處理兩個方面,可以參看網(wǎng)絡例子:http://www./pos…這里不作詳細的列舉了.

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

   1.轉換成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.轉換成avi文件: mencoder infile.* -o outfile.avi -of avi -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600

   3.轉換成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ì)量和轉換速率.具體的細節(jié)可以參看專業(yè)的技術文檔.

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

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

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多