2008年4月16日 星期三

實驗六、MyEvalVid

實驗目的:
1.瞭解EvalVid的系統架構並得知其優缺點。
2.瞭解整合EvalVid和NS2所得之MyEvalVid的系統架構。
3.瞭解如何使用MyEvalVid來模擬和評估多媒體影像傳輸。
------------------------------------------------------------------------------
先開Cygwin,然後接換到lab6的資料夾
然後使用ffmpeg程式去對yuv檔案轉成m4v
-s : set frame size(qcif是指176*144)
-vcodec : 指定要壓縮的方式(這裡指定用mpeg4去壓縮)
-r : set frame rate(這裡設定每秒30個畫面)
-g : set the group of picture size(這裡設定每一個gop有九個畫面)
-bf : use 'frame' B frame(這裡設定I與P之間或P與P之間有兩個B frame)
-i : input file name(輸入影片檔名為foreman_qcif.yuv,輸出檔案為foreman_qcif.m4v)

轉成m4v的檔案囉!~
接下來要用MP4Box將m4v檔案再轉成mp4
結果出現找不到mvscr70.dll的訊息
上網找了一下,很快就從google找到msvcr70.dll囉!下載下來放到lab6的資料夾
在執行一次MP4Box.exe
OK!成功了!出現foreman_qcif.mp4的檔案

接下來利用mp4trace成是把影片中的每一個frame相關資訊擷取出來並存到foreman_qcif.st的
檔案中
出現foreman_qcif.st檔案下面是檔案內容
使用NS2模擬工具去模擬網路效能
模擬的時候採用random uniform error model和multicast傳送
錯誤率設為0.01,seed為1,最大封包大小為1024

模擬結束後,產生傳送紀錄檔(sd)和接收紀錄檔(rd)

傳送記錄檔,看到送出659個封包
接收紀錄檔,看到收到652個封包,所以遺失率是(659-652)/659=0.011
使用模擬過程產生的傳送紀錄檔(sd)、接收紀錄檔(rd)和影片紀錄檔foreman_qcif.st檔案
和mp4檔案,經由etmp4程式產生一個有畫面遺失的影片foreman_qcife.mp4檔
執行完之後產生了好幾個檔案
接著使用ffmpeg程式將上一步驟得到的重建後的mp4檔回復成yuv影片檔
得到foreman_qcife.yuv檔案
利用avgpsnr程式針對重建後的yuv影片檔及原始yuv影片檔
獲得重建後yuv影片的PSNR值的大小
PSNR=33.607902
使用YUVviewer程式去觀看重建後的影片和原始影片的差別
左邊是原始影片,右邊是重建後的影片
很明顯右邊的影像品質較差
是因為在上面的網路模擬傳輸過程中,有封包遺失率0.011
在傳輸過程中有某些封包丟掉
所以導致重建後的影片品質較原始影像差

2 則留言:

Unknown 提到...

请教:利用mp4trace成是把影片中的每一個frame相關資訊擷取出來並存到foreman_qcif.st,发现foreman_qcif.st是0字节,多次测试都是这样,请问是什么原因?谢谢!

阿正 提到...

我在想會不會是指令上的問題
http://4.bp.blogspot.com/_aWkeNIuxpN4/SAcS4OmOq4I/AAAAAAAAAnY/QB2MJo17n5E/s1600-h/image031.jpg
有照這上面打嗎?