Thursday, March 27, 2008

實驗六 MyEvalVid

了解如何使用MyEvalVid來模擬和評估多媒體影像傳輸

模擬網路架構圖
將目錄切換到lab6資料夾底下,使用ffmpeg程式對YUV檔轉成m4v檔案

轉成m4v檔案後,接著使用MPBox將影片轉成mp4檔案,此時出現錯誤訊息,發現少了ㄧ個msvcr70.dll,上網 google一下找到可以下載msvcr70.dll

把下載好的msvcr70.dll 放到 lab6 的資料夾就可以將影片轉成mp4檔案

把影片轉成mp4之後,利用mp4trace程式將影片中的每一個frame相關資訊擷取出來並存放到foreman_qcif.st的檔案中

這是foreman_qcif.st的檔案

使用ns2模擬工具去模擬網路效能,採用random uniform error model & multicast傳送,並把錯誤率設為0.01,seed為1,最大的封包大小為1024bytes

傳送端送出了659個封包

接收端只收到了651個封包,遺失率為(659-651)/659 = 0.012

使用sd檔、rd檔及foreman_qcif.st和mp4檔,經由etmp4產生一個有畫面遺失的影片mp4,但是當我打入指令的時候一直會有需要偵錯出現,不信邪又試了很多遍還是ㄧ樣,於是停滯不前了ㄧ個禮拜。禮拜四上課的時候突然靈機ㄧ動,想說如果把課本的指令./拿掉試看看沒想到就成功了

在使用ffmpeg程式將重建後的mp4回覆成yuv檔

使用avgpsnr 程式去針對重建後的yuv影片檔及原始yuv影片檔,獲得重建之後yuv影片的PSNR值為33.294933

使用YUV viewwe程式去觀賞重建後的影片與原始影片的差別,左半部影像為原始影像檔,右半部影像為重建影像


終於成功完成了,中間有ㄧ度卡很久沒辦法成功,不過影片中的人的臉有點冏。

1 comment:

hhliu said...

./ 在UNIX的意思是由目前的目錄下開始尋找,沒有加上 ./ 是由PATH所指定的目錄裡面尋找指令。按照./的意思只會差一個"目前的路徑下"而已。

你可以用find指令去找看看etmp4是放在那一個目錄下面,然後再確認一下所執行的檔案沒有弄錯(應該是沒錯,只是 ./ 這個原因有點奇怪)