반응형

기존 업스케일링 작업을 버추얼덥에서 하면서, 이를 활용해 뮤비를 만들때 뜻밖의 문제...

버추얼덥에서 뽑은 영상을 플레이어등으로 재생하면 아무 문제가 없는데, 뮤비메이커에 소스영상으로 넣고, 편집만 하면.. WMV로 뽑으나 MP4로 뽑으나 그렇게 뽑은 영상을 다양한 플레이어에서 재생을 해봐도 모두 영상이 순간이동하듯 뚝뚝 끊겨 보이는 현상에 대해 말한바가 있다. 



미루다가 해결점을 찾기위해 당시 소스로 사용한 장나라 아마도 사랑이겠죠 뮤비로 테스트를 해본다.



무슨 말인고 하니, 궁금한 이들은... 

0c (10초추출).zip


요 뮤직비디오의 10초 구간 압축파일을 해제해 영상을 재생시켜보자, 문제가 없을 것이다. 

버츄얼덥에서 다시 코딩을 해보자! 다시 재생해봐도 문제가 없을 것이다.


그럼, 버츄얼덥에서 재코딩한 영상을 무비메이커에서 다시 코딩해, 플레이어등으로 돌려보자!

희한하게도 장면이 끊겨서 보일 것이다. 


이것이 예시이다.


7b. (멀티패스 N패스) 무메 재인코딩.zip


왜 버츄얼덥 코딩영상은 플레이어에선 잘 보이다, 무메에서 재코딩을 하면, 새롭게 생성된 무비메이커 영상에선 저렇게 인물들이 각기춤과 순간이동을 하듯이 움직임이 끊어져서 보일까?


참.. 알다가도 모를 일!!


즉, 버츄얼덥 영상을 무비메이커에서 편집파일로 쓸 경우, 해당 파일부분은 장면이 끊겨서 보일수 있는 문제에 대해, 어떻게 코딩조건을 해야 이런 문제가 안생기는가를 다뤄보는 포스팅이다. 

(무비메이커의 사양이 워낙 오래전 단종되어 낮아서 그럴수도 있고, 혹은 다른 동영상 편집프로그램을 쓴다면, 다른 프로그램에서도 마찬가지 현상이 일어날수 있으니, 자신이 자주 쓰는 고유한 영상 프로그램이 있다면 각자 테스트를 해보는게 좋다.) 



X 264코덱의 ABR, CRF, CQP, 그리고 유튜브 코덱이라는 vp9.. 4종으로 일단 각각 테스트..




0은 유튜브 다운 원본

0b는 다음팟 인코더로 화면을 변환한 기준영상..


1~4는 0b의 영상을 각각  ABR, CRF, CQP, 유튜브 코덱이라는 vp9 코덱이나 설정등을 적용해서 뽑은 영상..



1~4의 각각 순번 B영상들은, 각 번호의 영상을 무비메이커에서 다시 뽑은 영상!


각각의 테스트 결과  X.264 코덱의 ABR, CRF, CQP 모드 인코딩 영상은 무비메이커 재인코딩에서 영상이 뚝뚝 끊겨서 나왔으며, 

VP9 코덱으로 인코딩 한 영상만이 무메에서 재인코딩을 해도 영상이 부드럽게 나왔다. 

용량은 기본 15라는 설정등이 좀 컸는지 모르지만, 제일 큰 용량에 비트레이트는 4~5천으로 인터넷돌아다니는 1080p 고화질 드라마 영상과 비슷한 비트레이트..! 




문제는 이 VP9 코덱은 X264 코드 설정에 비해서 시간이 훨씬 오래 걸린다. 




빠른 확인을 위해, 동적구간이 많은 장면을 다시 10초 정도만 추려서 각각을 테스트를 해본다.


한가지를 해결하면, 또 산너머 산이라고 했던가!



Job모드를 걸어놓고 일괄적으로 변환을 해봤지만, 


Abr, CRF, CQP의 비트레이트는 5분 기준에선 큰 차이가 났지만, 10초단위에선 비슷하게 산출되며, 시간도 거의 60초에 근접하는등 대동소이했다.



차후 무비메이커 코딩에서 끊김이 없는 Vp9 코덱만이, 하필 7분 3초를 기록했다. 


다른 코덱이나 설정에 비해서 무려 7배 가까이 느린 것이다. 


10초 영상에 7분이라?


기존 ABR코덱에서 1시간 드라마 한편에 7시간정도가 소모된것을 생각해보면, 

Vp9코덱으로 인코딩하면 49시간 정도가 최소 걸린다는 이야기이다. 

(영상 인코딩은 일반적 작업보다 Cpu소모가 크지만, 또한 CPU 소모가 크면 물론 전기세도 크다)


별도의 재인코딩 변환없이 무비메이커에서 바로 쓸수 있는 영상이 되나, 이 조건을 최적화로 생각하고 코딩을 하기엔 천문학적 인내와 시간을 필요로하는 것이다. 



화질이 좋은 선에서 용량을 경량화하고, 빠른 코딩이 되면서도 무비메이커등에서 재코딩할때 끊기는 현상을 낳지 않는 최적화 코드를 더 찾아봐야 할 것이다. 

무비메이커 작업을 하지 않아도, 기존 700mb 영상을 업스케일링하면 10500kbps비트 설정이 너무 컸는지.. 

4.5GB가까이 나오는 영상을 재인코딩을 통해서 줄여야 했는데.. 


이런 용량의 문제로 재인코딩, 무비메이커의 부분적 소스활용작업을 위한 재인코딩등의 절차를 쓸데없이 만들 필요가 없이 단 한번에 용량도 적정하고 이런 뜻밖의 오류도 나타나지 않는 코덱조건을 찾는다면 영상제작당 시간이나 전기 사용량을 많이 줄일수 있는 것이다. 


한번만 최적화를 찾아내도, 주먹구구식이 아닌 모든 영상들에 합리적인 가이드라인을 찾아낼수 있을터인데..!


추가적으로 CRF와 CQP에서 퀄러티의 최상과 최하에서 용량차이는 매우 크게 벌어지지만, 소요되는 코딩시간은 물론 퀄러티가 높을수록 오래걸리지만, 실질적으로 용량에 대비하는 만큼은 아니고, 살짝 유의미한 수준정도이다. 

필자의 구형 Q9550 CPU에서 그렇지만, 최신 컴퓨터와 그래픽카드등의 옵션이 뛰어나다면 이 정도 코딩시간 차이가 안나올지도 모르겠다. 화질의 설정 자체가 비트레이트를 크게 키우나, 실제 코딩시간에 그 배율만큼 수백배 증가는 아니라, 20%가 좀 넘는 차이 정도에 불과하다. 


고정적인 개념의 CQP가 용량이 같은 조건에서 살짝 더 큰데, 시간은 살짝 덜 걸리는 것을 볼수 있다.



연구노트를 마친다. [2020.8m.24d, 오후 22시 21분경, Charlie]


P.S.. > 추가 실험

x. 264의 멀티패스 옵션을 해보았다. 

뭔가 또 따로 설정이 있고, 일부 설정 패일을 이용하는 것인지, 1패스 옵션들의 5,6번 코딩은 실패!

7. 멀티패스 N패스 영상은 영상이 잘 나오고, 용량도 기존 10mb보다 큰 12mb정도이다. 

근데 무비메이커에서 재코딩을 하니, 사람이 걸어 이동하는 장면이 툭툭 순간이동처럼 끊김이 심하다. 


8. X.265코덱을 기본 퀄러티 28값에서 기본 패스트 조건에서 코딩을 해봤는데.. 기본 X.264 코딩들이 60초 근방이었다면, 79초 정도가 소모.. 그렇게 큰 차이는 없었다. 단지 비트레이트가  해당 영상에선 별 문제가 없지만, 고화질 영상기준으론 낮아서 퀄리티값을 높여서 해보기로...




다시 X.265에서 퀄러티를 23정도로 두고 패스트 조건에서 코딩을 하니, 시간은 75초정도로 ..퀄러티에 따른 코딩시간 차이는 거의 없는듯하다. 


프로필에 속도를 결정하는 울트라 패스트나 Slower 등의 차이가 있어, 대표적으로 10에선 슬로우로 바꾸어보고, 11에선 울트라 패스트 최고속도로 코딩을 해보았다. 


패스트에서 미디엄을 지나, 그 다음단계가 슬로우지만, 코딩시간은 75초에서 3분 59초에 달할정도로 크게 늘어난다. 울트라 패스트에선 60초 근방으로, X.264코딩속도와 거의 비슷하다. 


10초 영상에 화면크기는 크나, 그렇게 고화질이라 할수 없는 뮤비스틸에서 눈으로 볼만큼 큰 차이는 없다. 

가성비를 생각한다면..최소 패스트 정도가 좋을듯하다.. 


X265의 특징은.. 아까 X.264가 대부분 10mb용량이 나오던것에 비해, 5~3.8mb정도로 확 준다는 것이다. 

속도가 빨라질수록 용량이 약간씩 줄어드는데.. 10초 분량비교라 짧기도 했지만, 눈으로 볼때는 차이가 확연히 들어오지는 않았다. 


어쨌든, 10의 슬로우와 11의 울트라 패스트로 뽑은 영상을 다시 무비메이커 인코딩을 해봤는데,, 참 애매하다!


아까 X.264 코딩에서 멀티패스-N패스 코딩의 뮤비메이커 재코딩버전은 매우 끊김이 심했는데.. 

10b와 11b. 무비메이커로 재인코딩한 영상은, 자연스럽기보단, 약간은 거슬리는 느낌이 있을 정도로 역시 일부 끊김이 보이는 것이다. 



버츄얼덥 코딩을 무비메이커에서 바로 써먹을 코딩조건은 없는 것인가? 좀더 연구를 해봐야겠다!




P. P.S. 마이크로 소프트 1 코덱으로의 실험!

코딩시간-1번 79초, 2번 79초, 3번 79초, 4번 57초, 5번 59초

(퀄러티가 높음에 따라서 코딩시간이 올라가나, 용량의 차이만큼 심하지는 않다.)


별로 설명이 없어서 해보니 조정할것은 퀄러티와 임시 품질 비율 2가지..


처음 기본그대로 퀄러티 100으로 해보니, 용량이 무려 442mb, X265대비로는 100배가까이 나오고, 비트레이트가 36만kbps 가량?? 거의 무손실 코딩급이다.. 


임시품질비율이 몰라 1~3에서 처음 기본 0.75, 그 다음 0.2, 그 다음 1.0의 최고값을 각기 주어봤는데..용량이나  비트레이트등, 눈으로 보는 화질의 비율은 없다. 별 의미가 없는 설정이니 하고, 그냥 4~5는 1.0을 부여!

화질은 업스케일링 화질 그대로~



4번에서 용량이 너무쎄서 퀄러티를 0.5정도로 만들어보니, 5.1mb정도가 나왔다. 

비트레이트는 4000kps가 좀 넘어 비트레이트만 보면 화질이 충분하겠네 싶은데.. 모자이크 작렬!

장난해? 뭐..?? 장난 아니고 장나라라고???

얼굴이 거의 타일공사 수준의 모자이크를 볼수 있다.




다시 퀄러티를 0.7정도로 키워보았다. 

용량이 24mb에 비트레이트가 20000kbps가량 과하니 원본 영상보다 과한 설정이겠구나 싶었는데..


타일까진 아니어도 작은 모자이크 피부를 한 인물을 볼수 있다... 


(이미지는 PC에서 클릭하여 원본크기로 볼때 확연히 차이를 느낄수 있다.)



거의 해볼만큼은 다 해봤는데.. 시간이 무지막지하게 걸리는 VP코덱말고는 뮤비메이커 코딩후 띄엄띄엄현상이 개선되지는 않는다.  무비메이커 단종이 몇년되서 최신 프로그램과 호환성이 말아먹는건지. 뭔지는 모르겠지만, 굳이 무비메이커가 아니더라도, 동영상 편집 프로그램들에서 이런 부분들을 개별적으로 테스트해볼필요가 있을 것이다. 


전에 차선책으로 다음팟 인코더등으로 재변환할땐 이런 끊어짐이 없고, 그렇게 변환한 파일은 무비메이커에서 문제가 없음을 말한바가 있다.

샤나인코더의 체계는 버츄얼덥과 비슷한 CRF, CQP의 개념인데.. 그럼 샤나인코더로 변환후, 무비메이커에서 사용하면 괜찮을까?


짧은 테스트 결과로는 괜찮았다. 



지금으로선 버츄얼덥 자체의 해결책은 시간이 무지막지 걸리는 Vp9 코덱을 쓰거나(Vp8은 안해봤지만, 아마도 상동).. 그렇지 않을시엔 차선책으로 다음팟이나 샤나인코더로 재인코딩을 한후에 무비메이커 작업을 하는 것이 좋다. 


유튜브에 올릴 경우엔 어떠한가?

버츄얼덥에서 뽑은 무비메이커 코딩시 오류가 나게 될 영상을 그대로 올리나, 그런 문제가 없던 VP9 코덱 추출영상을 올리나, 화면의 끊김현상이 나타나지는 않는다. 

유튜브에 바로 업로드할 목적으로 뽑은 버츄얼덥 영상은 영상끊김 문제에선 별 상관이 없다는 뜻이다.  







반응형
Posted by Charlie Man
,

[검색바3(하단), 찰리맨]
-제목+이미지+내용