相關(guān)資訊
本類常用軟件
-
福建農(nóng)村信用社手機(jī)銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416898
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機(jī)銀行客戶端下載下載量:365699
-
快播手機(jī)版下載量:325855
windows系統(tǒng)用VC++6.0編譯MPEG4IP過程
2012/5/18 22:12:18 出處:本站原創(chuàng) 人氣:558次 字號(hào):小 中 大
每日一囧
經(jīng)過5天的努力,mpeg4IP Package在Window下的編譯終于搞掂,編譯環(huán)境為VC++6.0。自我感覺又向前邁進(jìn)了一步^_^。廢話少說了,總結(jié)一下編譯過程吧。
MPEG4IP出了很多版本,根據(jù)本人的測試,能夠編譯(下文都是指Windows環(huán)境下)成功的是0.9.3版和1.4.1版(從0.9.4到1.3.0在Windows下無法打開工程,奇怪了)?梢钥闯墒且粋(gè)新版一個(gè)舊版,新版向下兼容,但是有些東西新版里不包含了,只有舊版里才有。因此我同時(shí)編譯了這個(gè)兩個(gè)版本。
在MPEG4IP_Guide.pdf中大概介紹了一下Windows下的編譯過程,但不夠細(xì)致,需要自己去摸索。首先,MPEG4IP分兩個(gè)大的模塊:encoding60.dsw(文件包的根目錄下)和player60.dsw(根目錄\player\src下)。打開workspace,這里需要特別提醒一下,有些工程會(huì)提示由于格式不同(UNIX格式),需要轉(zhuǎn)換一下。這里全部選擇No,然后找到那些工程的dsp文件(工程文件),用寫字板或者Word打開,保存一下,再在工程欄中點(diǎn)擊那些未打開的工程,即可將其加載進(jìn)來了。表1列出了需要轉(zhuǎn)換的dsp文件。
Encoding60.dsw中的工程(*.dsp) player60.dsw中的工程(*.dsp)
工程名 路徑 工程名 路徑
avi2raw sever\util\avi2raw aac_plugin player\src\codec\aa
avdump60 sever\util\avidump celp_plugin player\plugin\audio\celp
lboxcrop sever\util\lboxcrop common lib\rtp
libmissing60 lib\gnu isma_audio_rtp_plugin player\plugin\rtp\isma_audio
libmp4av lib\mp4av libfileposrec lib\fposrec
libmp4v2 lib\mp4v2 libhttp player\lib\libhttp
mp4creator sever\mp4creator libmpplayer player\src
mp4dump lib\mp4v2\util libmsg_queue lib\msg_queue
mp4extract lib\mp4v2\util librtsp player\lib\rtsp
mp4info lib\mp4v2\util mp4player player\src
RGB2YUV sever\util\rgb2yuv mpeg4_iso_plugin player\src\codec\mpeg4
yuvdump util\yuv wmp4client60 player\src\win_client
wmp4player60 player\src
表1:需轉(zhuǎn)換的工程文件及路徑
將所有工程加載完畢,在Build菜單下選擇Batch Build,選擇工程的Release版本,根據(jù)MPEG4IP_Guide.pdf上的說明,選擇如下工程,見表2:
encoding60.dsw 0.9.3 1.4.1 get files player60.dsw 0.9.3 1.4.1 get files
isoencoder √ √ isoencoder60.exe aac_plugin × √ aac_plugin.dll
RGB2YUV √ √ RGB2YUV.exe mp3_plugin × √ mp3_plugin.dll
avi2raw √ √ avi2raw60.exe mp4player √ √ mp4player.exe
avidump60 √ √ avidump.exe mpeg4_iso_plugin × √ *.dll file
faac √ × faac60.exe wmp4client60 √ √ wmp4client.exe
lame60 √ × lame60.exe wmp4player60 √ √ wmp4player.exe
mp4creator √ √ mp4creator60.exe xvid_plugin × × N/A
mp4dump √ √ mp4dump60.exe
mp4extract √ √ mp4extract60.exe SDL √ × SDL.dll
yuvdump × √ yuvdump.exe
xvidenc(or divxenc?) √ × divxenc60.exe
表2:需要編譯的工程及得到的文件
這里需要說明的是,1.4.1版本在編譯之前,需要先下載SDL Package來進(jìn)行編譯,生成SDL.lib、SDL.dll、和SDLmain.lib。而0.9.3版本里已經(jīng)包括了SDL Package了,就可以直接去編譯。
關(guān)于SDL Package的編譯,這里簡單介紹一下。首先將下載的壓縮包解壓到MPEG4IP的根目錄下,并將名字改成SDL。接著,在SDL文件夾中解壓VisualC文件夾到SDL的根目錄中,在SDL的根目錄下打開VisualC.html,按照里面的說明進(jìn)行編譯。最后,將生成的SDL.lib、SDL.dll、和SDLmain.lib三個(gè)文件放入SDL根目錄下的lib文件夾內(nèi)(該文件夾新建即可)。
提醒注意兩點(diǎn):
一、在編譯MPEG4IP時(shí),在VC環(huán)境中,Tool->Options->Directories下的Include文件里,不要包含Microsoft Platform SDK for Windows XP SP2中的Include文件夾(而這個(gè)文件夾是編譯Osip2、Exosip2時(shí)必須的),否則會(huì)有一些奇怪的編譯錯(cuò)誤;
二、編譯1.4.1版本的player60.dsw中的player60.dsp時(shí),會(huì)出現(xiàn)一個(gè)編譯錯(cuò)誤,是說函數(shù)Our_SDL_MixAudio()中的參數(shù)在強(qiáng)制類型轉(zhuǎn)換時(shí)無法完成的錯(cuò)誤。這里需要手動(dòng)修改一下源代碼,將需要強(qiáng)制轉(zhuǎn)換的類型修改成合適的,即改成函數(shù)Our_SDL_MixAudio()中所定義的行參類型。
好了,基本上總結(jié)完了。想想這5天來的鉆研摸索,是值得肯定和鼓勵(lì)的啦,呵呵。在論壇里不斷的搜索,尋找相關(guān)的解答,總算工夫不負(fù)有心人。最后,引用一位大蝦的話,我覺得不錯(cuò),“看源代碼沒有什么捷徑可走,只有先熟悉理論然后根據(jù)自己的需要,分部分(模塊)看,否則很容易陷入源代碼的沼澤中!
MPEG4IP出了很多版本,根據(jù)本人的測試,能夠編譯(下文都是指Windows環(huán)境下)成功的是0.9.3版和1.4.1版(從0.9.4到1.3.0在Windows下無法打開工程,奇怪了)?梢钥闯墒且粋(gè)新版一個(gè)舊版,新版向下兼容,但是有些東西新版里不包含了,只有舊版里才有。因此我同時(shí)編譯了這個(gè)兩個(gè)版本。
在MPEG4IP_Guide.pdf中大概介紹了一下Windows下的編譯過程,但不夠細(xì)致,需要自己去摸索。首先,MPEG4IP分兩個(gè)大的模塊:encoding60.dsw(文件包的根目錄下)和player60.dsw(根目錄\player\src下)。打開workspace,這里需要特別提醒一下,有些工程會(huì)提示由于格式不同(UNIX格式),需要轉(zhuǎn)換一下。這里全部選擇No,然后找到那些工程的dsp文件(工程文件),用寫字板或者Word打開,保存一下,再在工程欄中點(diǎn)擊那些未打開的工程,即可將其加載進(jìn)來了。表1列出了需要轉(zhuǎn)換的dsp文件。
Encoding60.dsw中的工程(*.dsp) player60.dsw中的工程(*.dsp)
工程名 路徑 工程名 路徑
avi2raw sever\util\avi2raw aac_plugin player\src\codec\aa
avdump60 sever\util\avidump celp_plugin player\plugin\audio\celp
lboxcrop sever\util\lboxcrop common lib\rtp
libmissing60 lib\gnu isma_audio_rtp_plugin player\plugin\rtp\isma_audio
libmp4av lib\mp4av libfileposrec lib\fposrec
libmp4v2 lib\mp4v2 libhttp player\lib\libhttp
mp4creator sever\mp4creator libmpplayer player\src
mp4dump lib\mp4v2\util libmsg_queue lib\msg_queue
mp4extract lib\mp4v2\util librtsp player\lib\rtsp
mp4info lib\mp4v2\util mp4player player\src
RGB2YUV sever\util\rgb2yuv mpeg4_iso_plugin player\src\codec\mpeg4
yuvdump util\yuv wmp4client60 player\src\win_client
wmp4player60 player\src
表1:需轉(zhuǎn)換的工程文件及路徑
將所有工程加載完畢,在Build菜單下選擇Batch Build,選擇工程的Release版本,根據(jù)MPEG4IP_Guide.pdf上的說明,選擇如下工程,見表2:
encoding60.dsw 0.9.3 1.4.1 get files player60.dsw 0.9.3 1.4.1 get files
isoencoder √ √ isoencoder60.exe aac_plugin × √ aac_plugin.dll
RGB2YUV √ √ RGB2YUV.exe mp3_plugin × √ mp3_plugin.dll
avi2raw √ √ avi2raw60.exe mp4player √ √ mp4player.exe
avidump60 √ √ avidump.exe mpeg4_iso_plugin × √ *.dll file
faac √ × faac60.exe wmp4client60 √ √ wmp4client.exe
lame60 √ × lame60.exe wmp4player60 √ √ wmp4player.exe
mp4creator √ √ mp4creator60.exe xvid_plugin × × N/A
mp4dump √ √ mp4dump60.exe
mp4extract √ √ mp4extract60.exe SDL √ × SDL.dll
yuvdump × √ yuvdump.exe
xvidenc(or divxenc?) √ × divxenc60.exe
表2:需要編譯的工程及得到的文件
這里需要說明的是,1.4.1版本在編譯之前,需要先下載SDL Package來進(jìn)行編譯,生成SDL.lib、SDL.dll、和SDLmain.lib。而0.9.3版本里已經(jīng)包括了SDL Package了,就可以直接去編譯。
關(guān)于SDL Package的編譯,這里簡單介紹一下。首先將下載的壓縮包解壓到MPEG4IP的根目錄下,并將名字改成SDL。接著,在SDL文件夾中解壓VisualC文件夾到SDL的根目錄中,在SDL的根目錄下打開VisualC.html,按照里面的說明進(jìn)行編譯。最后,將生成的SDL.lib、SDL.dll、和SDLmain.lib三個(gè)文件放入SDL根目錄下的lib文件夾內(nèi)(該文件夾新建即可)。
提醒注意兩點(diǎn):
一、在編譯MPEG4IP時(shí),在VC環(huán)境中,Tool->Options->Directories下的Include文件里,不要包含Microsoft Platform SDK for Windows XP SP2中的Include文件夾(而這個(gè)文件夾是編譯Osip2、Exosip2時(shí)必須的),否則會(huì)有一些奇怪的編譯錯(cuò)誤;
二、編譯1.4.1版本的player60.dsw中的player60.dsp時(shí),會(huì)出現(xiàn)一個(gè)編譯錯(cuò)誤,是說函數(shù)Our_SDL_MixAudio()中的參數(shù)在強(qiáng)制類型轉(zhuǎn)換時(shí)無法完成的錯(cuò)誤。這里需要手動(dòng)修改一下源代碼,將需要強(qiáng)制轉(zhuǎn)換的類型修改成合適的,即改成函數(shù)Our_SDL_MixAudio()中所定義的行參類型。
好了,基本上總結(jié)完了。想想這5天來的鉆研摸索,是值得肯定和鼓勵(lì)的啦,呵呵。在論壇里不斷的搜索,尋找相關(guān)的解答,總算工夫不負(fù)有心人。最后,引用一位大蝦的話,我覺得不錯(cuò),“看源代碼沒有什么捷徑可走,只有先熟悉理論然后根據(jù)自己的需要,分部分(模塊)看,否則很容易陷入源代碼的沼澤中!
熱門評(píng)論
最新評(píng)論