GoPro 又一神兵利器:慢速播放補插圖(Synthetic Slow Motion)
GoPro的其中一個模式,就是以每秒六十格的速度拍攝解析度達720P的影片,也就是R3模式。這個模式是我最常使用的,因為他的畫質最好,每單位畫素所獲得的碼率,是1080p(R5)攝影模式的4.5倍。
在R3模式下所拍得的影片,如果經由每秒三十格播放(常見的播放規格NTSC),就會形成慢一倍的慢動作播放,而且保有畫面流暢度。
但假如我們希望慢更多倍呢?
這時最直覺的想法就是,把播放率再降低,好比說降到10fps,這樣等於是降了六倍的速度在播放,但這會衍生一個嚴重的問題,影像看起來會不連續,動作會一頓一頓的,有點像是快速連播靜態的相片,影像中任何會動的物體都無法流暢的運動。
想解決這個不流暢的問題,硬體上的辦法就是,買支援更高速度攝影的機器,但這是要花錢的,假如不花錢該怎麼解決呢?
之前在數位減震的文章中,曾經提到免費又專業的影像編輯軟體『Avisynth』,這個開放式的編輯工具就提供一種方式解決此問題,透過運算以類似補插點的方式產生影像,
第一步:將你準備處理的影片,先以Deshaker做畫面穩定,穩定的畫面對於畫素的向量運動偵測會有幫助,補插圖效果會越好。
當你已經有了畫面穩定的影像,到這個網頁下載一個叫做mvtool的外掛,檔案下載之後,直接複製到plugins資料夾即可,這個小工具是用來量測畫素的移動,他並非是Avisynth原本就內建的工具,所以必須以手動的方式匯入。
第二步:(程式碼出處:http://nerds-central.blogspot.com/2007/04/synthetic-slow-motion-with-avisynth.html)
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\mvtools.dll")
source = AVISource("E:\GoPro影片編輯相關\slowMotion\Sde3765_2.avi",false)
oSource=source
source=ConvertToYV12(source)
source=AssumeFPS(source,30)
backward_vec = source.MVAnalyse(isb = true, truemotion=true, pel=2, idx=1)
forward_vec = source.MVAnalyse(isb = false, truemotion=true, pel=2, idx=1)
cropped = source.crop(4,4,-4,-4) # by half of block size 8
backward_vec2 = cropped.MVAnalyse(isb = true, truemotion=true, pel=2, idx=2)
forward_vec2 = cropped.MVAnalyse(isb = false, truemotion=true, pel=2, idx=2)
fSource=source.MVFlowFps2(backward_vec,forward_vec,backward_vec2,forward_vec2,num=400,idx=1,idx2=2)
fSource=AssumeFPS(fSource,30)
return fSource
以上程式碼,你只要注意我所標出的紅色粗體部分,第一串路徑請直接指向你的mvtools.dll檔案位置。Source=AssumeFPS(source,30)裡的這個『30』所講的是你影片原來的每秒拍攝格數,假如你是用GoPro R3模式拍攝,那麼這裡就要設定成60,其實設定成30也沒什麼不可以,只是他會從放慢一倍的速度開始處理。
倒數第二行的數字400,這個數字就是指,每30格拍攝畫面之間,你想請這個程式幫你模擬產生的虛擬畫面數目。
最後一行的30是用來設定輸出影片的播放率,設定30就是一般NTSC的規格,每秒播放三十格。
確認好你的程式碼以後,用Windows記事本儲存成附檔名.avs的檔案,然後用VirtualDub開啟這個avs檔案,接著你就可以在VirtulaDub裡面得到順暢且慢速的影片,你可以直接選擇你要的編碼並請VirtualDub輸出最後成品,或者再進行其他影片編輯。
使用這種補插圖的方式,要注意一個觀念,類似這樣的作法其目的都不是為了增加解析度(畫面精細度),他只是幫助觀賞者可以欣賞到比較順暢的影片,僅只是順暢,原本沒拍到的細節不可能透過這種方式而無中生有,真正的高速攝影機,才可以進一步拍攝短瞬時間裡的細節。
底下是我所做的範例影片,第一個影片是未處理而直接將影片的播放率降十三倍,第二個影片則是處理後,以慢速十三倍播放。
上面兩個影片的順暢度,相信你們很容易可以察覺。以60fps拍攝,並放慢十倍以上的作法是有點過火了,這大概是等同於60X13.5=810fps的高速攝影了,也因為模擬的畫面比例很高,所以你如果仔細看,可以看到影像上的瑕疵(可注意移動物體的邊緣),假如我們放慢個四、五倍播放,就很難以肉眼察覺補插圖所形成的影像瑕疵,可以更成功模擬出超高速攝影機所達到的拍攝效果。這就是以免費的方法,將GoPro的高速攝影功能進一步發揮到更高等級的效果,而且依照上面這樣的說明,你根本不需要會寫程式碼,以我現在菜的程度,我自己也寫不出來,多虧Dr. Alexander J Turner 這位熱心分享的達人,經過他本人同意後,再此特別與大家分享他的程式碼。
在R3模式下所拍得的影片,如果經由每秒三十格播放(常見的播放規格NTSC),就會形成慢一倍的慢動作播放,而且保有畫面流暢度。
但假如我們希望慢更多倍呢?
這時最直覺的想法就是,把播放率再降低,好比說降到10fps,這樣等於是降了六倍的速度在播放,但這會衍生一個嚴重的問題,影像看起來會不連續,動作會一頓一頓的,有點像是快速連播靜態的相片,影像中任何會動的物體都無法流暢的運動。
想解決這個不流暢的問題,硬體上的辦法就是,買支援更高速度攝影的機器,但這是要花錢的,假如不花錢該怎麼解決呢?
之前在數位減震的文章中,曾經提到免費又專業的影像編輯軟體『Avisynth』,這個開放式的編輯工具就提供一種方式解決此問題,透過運算以類似補插點的方式產生影像,
第一步:將你準備處理的影片,先以Deshaker做畫面穩定,穩定的畫面對於畫素的向量運動偵測會有幫助,補插圖效果會越好。
當你已經有了畫面穩定的影像,到這個網頁下載一個叫做mvtool的外掛,檔案下載之後,直接複製到plugins資料夾即可,這個小工具是用來量測畫素的移動,他並非是Avisynth原本就內建的工具,所以必須以手動的方式匯入。
第二步:(程式碼出處:http://nerds-central.blogspot.com/2007/04/synthetic-slow-motion-with-avisynth.html)
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\mvtools.dll")
source = AVISource("E:\GoPro影片編輯相關\slowMotion\Sde3765_2.avi",false)
oSource=source
source=ConvertToYV12(source)
source=AssumeFPS(source,30)
backward_vec = source.MVAnalyse(isb = true, truemotion=true, pel=2, idx=1)
forward_vec = source.MVAnalyse(isb = false, truemotion=true, pel=2, idx=1)
cropped = source.crop(4,4,-4,-4) # by half of block size 8
backward_vec2 = cropped.MVAnalyse(isb = true, truemotion=true, pel=2, idx=2)
forward_vec2 = cropped.MVAnalyse(isb = false, truemotion=true, pel=2, idx=2)
fSource=source.MVFlowFps2(backward_vec,forward_vec,backward_vec2,forward_vec2,num=400,idx=1,idx2=2)
fSource=AssumeFPS(fSource,30)
return fSource
以上程式碼,你只要注意我所標出的紅色粗體部分,第一串路徑請直接指向你的mvtools.dll檔案位置。Source=AssumeFPS(source,30)裡的這個『30』所講的是你影片原來的每秒拍攝格數,假如你是用GoPro R3模式拍攝,那麼這裡就要設定成60,其實設定成30也沒什麼不可以,只是他會從放慢一倍的速度開始處理。
倒數第二行的數字400,這個數字就是指,每30格拍攝畫面之間,你想請這個程式幫你模擬產生的虛擬畫面數目。
最後一行的30是用來設定輸出影片的播放率,設定30就是一般NTSC的規格,每秒播放三十格。
確認好你的程式碼以後,用Windows記事本儲存成附檔名.avs的檔案,然後用VirtualDub開啟這個avs檔案,接著你就可以在VirtulaDub裡面得到順暢且慢速的影片,你可以直接選擇你要的編碼並請VirtualDub輸出最後成品,或者再進行其他影片編輯。
使用這種補插圖的方式,要注意一個觀念,類似這樣的作法其目的都不是為了增加解析度(畫面精細度),他只是幫助觀賞者可以欣賞到比較順暢的影片,僅只是順暢,原本沒拍到的細節不可能透過這種方式而無中生有,真正的高速攝影機,才可以進一步拍攝短瞬時間裡的細節。
底下是我所做的範例影片,第一個影片是未處理而直接將影片的播放率降十三倍,第二個影片則是處理後,以慢速十三倍播放。
上面兩個影片的順暢度,相信你們很容易可以察覺。以60fps拍攝,並放慢十倍以上的作法是有點過火了,這大概是等同於60X13.5=810fps的高速攝影了,也因為模擬的畫面比例很高,所以你如果仔細看,可以看到影像上的瑕疵(可注意移動物體的邊緣),假如我們放慢個四、五倍播放,就很難以肉眼察覺補插圖所形成的影像瑕疵,可以更成功模擬出超高速攝影機所達到的拍攝效果。這就是以免費的方法,將GoPro的高速攝影功能進一步發揮到更高等級的效果,而且依照上面這樣的說明,你根本不需要會寫程式碼,以我現在菜的程度,我自己也寫不出來,多虧Dr. Alexander J Turner 這位熱心分享的達人,經過他本人同意後,再此特別與大家分享他的程式碼。
你也許會喜歡的相關文章:
留言
Thanks very much.
Google translate did not do too bad a job :)
Best wishes - AJ
不過學長你的示範影片中,兒子一身藍站在紅色地面上~這樣的差異應該對數位處理來說是蠻容易的,如果是像你平時拍的海底(一片藍藍的),會不會很容易出現畫面異常呢~還是說這是可以用參數修正的哩?
你說的很可能會是一個問題,但是我們平常在拍攝的時候,很少會使得想拍攝的主題(物體)和背景太過相似,因為這樣的影片不夠能凸顯主題,可能不太值得用來跑後製成為超慢速的播放橋段。
hahahaha.......He is my son.
Thanks for your sharing,so amazing code!!!
算是一種變通的作法,只要動作不要太劇烈(相對的拍攝的速度不要太慢、放慢倍數不要太高),效果都會不錯。
有了這個補插圖的小工具,就可以成功解決這個問題,不過放慢倍數也不要太高喔!否則很有可能會出現一些錯誤的插圖而使得影像非常『奇特』。
請教一下,使用virtualdub來deshaker(第一步),及第二步的slowmotion是要分兩次來執行嗎?
Filter的功能選單是允許同時加入多個濾件,再同時進行[run video analysis]?
avs 文件是算程式碼而不是filter?
麻煩你了。
因為我每次Deshaker完以後,都會確認一下影片結果,所以我自己都是分開做,我覺得一起做應該也可以,因為原本就可以多個filter一起跑。
avs是一段程式碼(文字檔),本身不能像是濾鏡這樣匯入,他只是讓virtualdub按照指令下去跑,我覺得算是一種後製的操作方式。
慢速播放和補插圖是兩回事,你如果手中已經有60fps的檔案,要慢速播放一倍速,那就直接在後製軟體裡選擇輸出成30fps的影像,這個過程應該非常快就可以完成了。
假如你是要放慢到接近十倍速的慢,那才需要來補插圖,請說明清楚你的問題癥結,這樣才好幫你回答。
請問你播放的時候,是多少fps在播放?
我不知道你所使用的軟體怎麼做後製的,這種套裝軟體就是麻煩在這裡,用起來好像很方便,但就是為了方便,他不告訴你背後的處理細節。
假如你把60fps的影片,改成以30fps播放,這是不可能有一頓一頓的感覺,但假如你要慢到十倍速,那就請忘了套裝軟體這回事,請你參考本文,使用Avisynth,假如你在使用上有什麼問題,歡迎隨時提出來,我們一起討論,其方便性絕對不如套裝軟體,但使用的靈活度絕對會讓專業玩家滿意。
Avisynth不是用來執行的.......
如文章所寫的步驟:
1.『到這個網頁下載一個叫做mvtool的外掛,檔案下載之後,直接複製到plugins資料夾即可,這個小工具是用來量測畫素的移動,他並非是Avisynth原本就內建的工具,所以必須以手動的方式匯入。』
2.到Windows筆記本裡頭去寫程式碼,如文章所附,附檔名存成.avs。
3.到Virtualdub裡頭去開剛剛的程式碼,成功開啟後就可以輸出完成影像。
將MP4轉成AVI幾乎是所有影片後製的基本原則,畢竟AVI的相容性最好。
關於你的播放速度的問題,請參考文章中的這一段
『以上程式碼,你只要注意我所標出的紅色粗體部分,第一串路徑請直接指向你的mvtools.dll檔案位置。Source=AssumeFPS(source,30)裡的這個『30』所講的是你影片原來的每秒拍攝格數,假如你是用GoPro R3模式拍攝,那麼這裡就要設定成60,其實設定成30也沒什麼不可以,只是他會從放慢一倍的速度開始處理。
倒數第二行的數字400,這個數字就是指,每30格拍攝畫面之間,你想請這個程式幫你模擬產生的虛擬畫面數目。
最後一行的30是用來設定輸出影片的播放率,設定30就是一般NTSC的規格,每秒播放三十格。』
另外是不是碼率越高錄像會越清晰用輔助軟體的效果會越好,還有我個人認為gopro加軟體輔助好像極限就是這樣,無法做出真正高張力的slowmotion。
如果攝影需求是上山下海,以萬元附近的價位考量我看非gopro莫屬了,還是說大大有可以推薦的機種,還請大大不吝指教,謝謝您!
『請問您有用gopro這款攝影機嗎?』
你這個問題真的是很誇張!非常的不可思議,我不是一直都在用GoPro攝影,並在部落格上發表一大堆作品,幾乎每個作品的文章都一直在GoPro長GoPro短的嗎?
GoPro的錄影會一直連續下去,不會就停住,除非記憶卡有問題。
能不能做出好的慢動作,要問機器的fps,GoPro就是60fps,別的dv如果也只是60fps,那做出來效果完全一樣,這不是機器的問題。
至於我有沒有其他推薦機種,請你『稍微』爬過我部落格的文再發問。之前你問慢動作補插圖的問題,我不曉得你有沒有注意到,我的回答幾乎都是從文章中複製貼上的,不是從別篇文章,正是從你發問的這篇文章上擷取下來。這顯示你根本沒有稍微看過這篇文章,我誠摯的建議你,要學習一件新東西之前,應該以自己做功課為主,真的遇到沒有辦法想通的問題,再請教別人,這樣你才能學得快又好。
還有一點我想要補充,我不是沒有看您其他文章而是有看沒有懂....術業有專攻....您這已是專業級的...就好比我是個黑手...對車輛外行的人或車主跟他講解專業術語他不見得聽的懂...所以請您見諒...我真是外行人啦!
我是這個部落格板主,所有的文章都是我自己寫的。只要你自己做過功課,有問題,還是很歡迎隨時提出來討論!
我每次潛水的錄影總容量大約6到8GB,但是由五十到七十個鏡頭所組成,每個鏡頭都拍攝一到兩個主題,很少有一個鏡頭超過十分鐘的,因為這樣才有可能後製剪接。
假如你真的有那麼特殊的需求,最應該擔心的是電池,因為一顆電池全新的時候,只能讓你錄不到16GB,所以買32GB的記憶卡不如買兩張16GB。
所以並沒有發生錄到一定容量後自己停止錄影的情形。
小弟對於"相機"這名詞在我腦海裡應該算是刻板印象,怎麼說呢?我大約國中時就拿我老爸的單眼像機在玩,那時只知道取景效果不外乎就是光圈搭配快門....後來出現了所謂的傻瓜像機(自動對焦)就沒在碰單眼相機了。直到夏普出了那台手持式(有螢幕)v8攝影機...也讓我更加深了相機跟攝影機的界線。可是最近的研究卻徹底顛覆我的刻板印象,不到一萬五的價格相機可以做到1920*1080p(60fps-28m)可是攝影機卻只達到1920*1080i(60fps*24m)攝影機要達到真正60p的規格價錢都最少要2萬以上,是不是想要作影片後製相機的功能會比較符合?而現在的攝影機卻變成了當初的傻瓜相機呢?(以一萬五價格左右的機器來選)謝謝您!
相機和攝影機的界線確實越來越模糊,但還沒有到誰被誰取代的那種程度,沒錯有些DC有很漂亮的影像規格,但你千萬別忘記了,廠商打廣告的時候只會拿好的出來講,他當然不會把缺點拿出來嚷嚷。
一段好的影像,不單單由影像規格決定,防震呢?就動態攝影而言,DV的防震當然走在專攻靜態攝應的DC,另外大家很容易疏忽的就是錄影時間,DV像是GoPro都是輕易的連續錄影超過兩個小時,你想想看哪一台DC可以讓你有這樣的錄影時間?
其他小地方如,機體的持握形式,也是以DV比較輕鬆,還有多聲道錄音其實也是從DV先開始的,即便到了今天,大部分兩萬元以上的dv其收音品質還是勝過dc。
我會在部落格裡推薦HX9V,是因為性價比,而不是因為這台DC可以完全取代DV,假如今天給我一筆豐厚的預算,要我進行攝影,那我還是會去選擇DV而非DC。
p.s我真的越來越覺得低價位的攝影機就像以前的傻瓜像機了
GoPro恰好是沒有針對潛水的設計,如果他有針對潛水設計,那就不用我們在花一筆去改裝潛水殼了。
我不清楚你說的dv是哪一種,但如果是不到一萬五的機子,確實有可能為了省成本,砍掉很多原本dv該有的特點。
其實關於dc和dv的特性比較,在mobile01已經討論很多次了,而dv續航力較佳是公認事實,你可以過去找看看這類文章。
好像不能用