引用
最初由 skywalker 发布
为什么要先转成30fps再convertfps(7.5), 然后再 assumefps(30)呢.......
直接用convertfps(30)不是一样吗..........
使用这种方法的问题在于原来24fps的东西变成了30fps......
这样就会造成一些多余的帧..........
不用VFR(动态帧率)的话.........
hybrid的东西无论怎么弄都无法无损的交给encoder压出来的............
真正的120fps的东西我从来没有见过...........
大概普通人能拿到的只有NTSC和PAL制式的帧率............
现在大概只有把文件fps降低一半.........
再在播放的时候提高了(reclock也好,其他播放器自带的功能也好).........
好在xvid的不需要担心这个问题...........
因为xvid自带的decoder会自动跳过null frame.........
所以建议要压120fps的最好用mpeg4来压(xvid,divx,ffmpeg等等)...........
可是對著120fps wmv的片子...難道要重壓成xvid再壓成rmvb嗎?引用
最初由 weilai 发布
謝謝大家的回復 ^^
講了這麼多還是來看實際方法
~~~~~AVS 範本如下~~~~~
V=AVISource("[[30FPS]-ptr之120fps.AVI].avi",False,"YUY2")
V=V.ConvertFPS(7.5,zone=80,vbi=45).AssumeFPS(30)
LoadPlugin("mpasource.dll")
A=MPASOURCE("120fps.mp3")
Audiodub(V,A)
重點就是第二行根據AviSynth所言ConvertFPS及AssumeFPS都是只針對[FPS]-ptr
而不改變RawTotalFrame count所以是無損frame
又透過改120fps.avi的檔頭使HPP9認可120fps.avi進行壓制(將原 120fps.avi+[120FPS]-ptr 改成 120fps.avi+[30FPS]-ptr)
及透過組合ConvertFPS.AssumeFPS達到加速播放
所以要求
後續:
首先是證實AVS範本播放時無dropping frame之情形:很簡單這裡用 MPC 並顯示統計欄方式播放證實沒有掉frame(只是Sync Offset及Jitter會提升)
再來是證實壓制出來的rmvb真的有達到不同於它法的高品質嗎?
當然敢說就是經過證實
做了四種方法的截圖(比較圖是動態畫面下的其中一個frame編號)
證實了理論
PS. 這裡不貼出來了,因為圖是 640x480 又如果用有損壓縮格式會難以比較
所使用的截圖是 .bmp 並針對線條模糊地帶、輪廓及線條完整度等
同120fps.avi之截圖放在一起做"放大"肉眼比對
而在壓制成的 file size 方面幾乎一樣(7秒控制在6K以內)
120fpsRAW_SelectEvery(2,0).rmvb 大於
120fpsRAW_SelectEvery(4,0).rmvb 大於
120fpsRAW_ChangeFPS(30).rmvb 大於
120fpsRAW_ChangeFPS(59.94).rmvb 等於
120fpsRAW_[30FPS]-ptr_4x快進播放.rmvb
最後就是如何 120fps.avi+[120FPS]-ptr 改成 120fps.avi+[30FPS]-ptr
很簡單使用AVI Frame Rate Changer 這個小工具(類似 AVI FourCC Code Changer 不用一秒就 OK)
最後要講的就是要這麼做的話最好是備份120fps.avi再做
因為發現AVI Frame Rate Changer只可變小不可放大(也就是可 120fps->30fps 不可 30fps->120fps)
如果你120fps.avi還不想這麼早delete的話
END