[Video As Code] ffmpeg으로만 만든 영상

1.
Video As Code 두번째 영상까지 올리고 세번째 영상준비를 마치고 영상을 만들 준비를 하다가 시간만 흘렀습니다. 그 사이 성당 초등부 봉사자가 “영상을 한번 만들어보자”는 말씀을 하셔서 5월 마지막주 영상을 만들었습니다. 영상은 4월 29일 미리내성지를 다녀온 초등부 부활소풍영상입니다.

순례 당일 비바람이 몰아졌습니다. 삼각대부터 이것저것 준비를 하였는데 비바람때문에 차에 놓고 이동하였습니다. 안성방면으로 가지 않고 용인에서 애덕고개로 오르는 길로 혼자 이동하고 아침부터 오후까지 사진찍고 영상찍었습니다. 덕분에 무릎에 탈이 낳죠.

올린 영상은 GUI형식의 영상편집지를 전혀 사용하지 않았습니다. 오직 ffmpeg으로만 만든 영상입니다. 영상 소스는 니콘 카메라로 찍은 사진과 영상, 아이폰으로 찍은 영상입니다. 아직 부족한 점이 많지만 무엇이 가능한지를 확인한 시간이었습니다.

첫번째 영상을 만들때 작가의 중요성을 알았다고 하면 두번째 영상을 만들때는 오디오엔지니어의 역할을 배웠습니다. 이번 영상에서는 PD의 역할을 알았습니다. 같은 소스를 가지고 어떤 결과물을 내놓을지는 전적으로 PD 몫으로 보입니다.

어떤 사진을 사용해서 어떻게 배열해서 어떤 이야기를 전할 것인지.
영상중 어떤 부분을 잘라서 어떻게 이어서 어떤 구도를 만들지..

작가가 쓴 시나리오를 가지고 어떻게 영상화를 하는지, PD 혹은 감독의 역할을 이해했습니다. 그리고 영화같은 영상이 감독의 예술이라는 말도 이해했습니다. 제한된 소스, 그것도 평이한 사진만을 가지고 무언가를 뽑으려고 하니까 힘들었습니다. 사진을 수정하려고 해도 편집가가 익숙하지 않아서 배경정도를 만들때 사용했습니다. 만약 이미지 편집기인 gimp를 잘 사용할 수 있었으면 더 나은 품질의 영상을 만들수 있었지만 현재로서는 한계입니다.

2.
ffmpeg을 이용하여 어떤 그림을 뽑았는지는 제작기와 관련한 강의영상에서 다룰 예정입니다. 참고로 몇 개 명령어를 소개합니다.

어제 마감작업으로 하였던 비디오에 오디오를 입히는 명령어입니다. 소스는 6개 오디오 파일입니다. 어떤 것은 비디오에서 추출하였고 어떤 것은 유튜브에서 저작권이 없는 듯한 영상에서 추출하였습니다. 처음에는 오디오를 하나 하나 영상에 입히는 방식을 했지만 앞에서 입힌 오디오가 뒤에서 없어지는 일이 생기네요. 그래서 검색해보니까 오디오 여럿을 하나의 오디오로 만드는 작업이 우선이었습니다. 이를 위한 명령어입니다.

ffmpeg -i walking_out.mp3 -i interval_out.mp3 -i missa_out.mp3 -i maria_out.mp3 -i blue_out.mp3 -i final_out.mp3 -filter_complex “[0]adelay=20000|20000[a]; [1]adelay=130000|130000[b];[2]adelay=290000|290000[c]; [3]adelay=380000|380000[d];[4]adelay=790000|790000[e];[5]adelay=872000|872000[f];[a][b][c][d][e][f]amix=6” audio.mp3

영상작업을 할 때 하나의 영상을 가지고 작업을 하지 않을 듯 합니다. 하나를 위한 조각으로 나누고 조각을 만든 다음 하나로 이을 듯 합니다. 저도 같은 식으로 작업하였습니다. 아래는 총 5개의 조각을 하나로 잇는 명령어입니다. 이럴 때 사용하는 필터가 concat인데 생각보다 쉽지 않습니다. H264코덱이 정의한 규칙에 따르지 않으면 오류가 나옵니다. 여러번 오류를 겪은 후 찾은 명령어입니다.

ffmpeg -i 01_start.mp4 -i 01_final.mp4 -i 02_final.mp4 -i 03_final.mp4 -i 04_final.mp4 -i 05_final.mp4 -filter_complex “[0:v]setsar=1[v0];[1:v]setsar=1[v1];[2:v]setsar=1[v2];[3:v]setsar=1[v3];[4:v]setsar=1[v4];[v0][v1][v2][v3][v4][5:v]concat=n=6:v=1:a=0,setpts=PTS-STARTPTS[v]” -map “[v]” final.mp4

영상을 보면 사진과 영상을 섞은 부분이 많습니다. 사진이 소스였기 때문에 이런 식의 구성을 할 수 밖에 없었습니다. 이런 용도로 사용하는 것이 필터입니다. ffmpeg이 제공하는 필터는 무척 많습니다. 그중 가장 많이 사용한 것이 overlay입니다.

ffmpeg -loop 1 -i DSC_7459.jpg -i Kakao.mp4 -filter_complex “[0:v]scale=1920×1280[2:v];[2:v][1:v]overlay=x=640:y=560:shortest=1[outv]” -map “[outv]” -c:v libx264 -an -crf 18 -pix_fmt yuv420p newtop2.mp4

filter_complex라는 부분을 보면 입력값과 출력값을 정의하고 입력값을 변수로 하여 변형을 하면 다시 새로운 입력변수로 지정합니다. 나름 프로그램입니다. 작은 세계입니다. 이 부분을 이해하니까 재미있더군요..

이상의 결과로 나온 결과물입니다.

유튜브에서 한번 보시고 괜찮으시면 좋아요, 구독… 모두 환영합니다. 참고로 동네 작가의 지적질입니다. 제가 요청했습니다.

기대 이상의 퀄리티임을 먼저 말씀드리고 싶습니다
영상 편집툴을 사용하신줄 알겠습니다

다만 영상물로서는 전달하고자 하는 메시지가 부정확했다.자막을 볼수 있는 시간이 충분하지 않았다.
오디오의 연결부가 거칠었다. 사제분의 메시지가 오디오로 부정확했을 때는 자막을 사용하는 것이 좋지 않나?

ffmpeg의 위력이 참 엄청나네요

작가의 표현처럼 ffmpeg는 훌륭한 프로그램입니다. 낮은 사양에서도 좋은 품질의 영상을 만들 수 있습니다. 제가 Video As Code를 하는 이유입니다.

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.