-
Notifications
You must be signed in to change notification settings - Fork 0
1. FFmpeg 시작하기
FFmpeg 구문은 다음과 같이 구성됩니다.
ffmpeg (전역 옵션) (입력1 옵션) -i (입력1) ... (입력n 옵션) -i (입력n) (출력1 옵션) (출력1) ... (출력m 옵션) (출력m)
가령, input.mpg 파일의 비디오 코덱을 h264, 오디오 코덱을 pcm_s16le로 하여 mp4 컨테이너에 output.mp4로 저장하고 싶다면 다음과 같이 입력합니다.
ffmpeg.exe -i input.mpg -c:v h264 -c:a pcm_s16le output.mp4
위에서 -i input.mpg
는 input.mpg
파일을 입력받으라는 뜻입니다.
-c:v h264
는 codec:video라는 뜻이며, 비디오 코덱으로 h264 코덱을 사용하겠다는 뜻입니다.
-c:a pcm_s16le
는 codec:audio라는 뜻이며, 오디오 코덱으로 pcm_16le를 사용하겠다는 뜻입니다.
마지막 output.mp4
는 출력 대상이 output.mp4
라는 뜻입니다.
각 옵션들에 대해서는 영역만 지켜진다면 그 영역 내에서는 순서가 바뀌어도 상관없습니다.
다음과 같이 복잡한 구문을 작성하는 것이 최종 목표입니다.
ffmpeg -hwaccel cuda -i input.mxf -filter_complex "[0:1][0:2]amerge=inputs=2[a],[a]asplit=2[a1][a2],[0:0]format=yuv420p,fps=30000/1001,hwupload_cuda,yadif_cuda=0,split=3[t][w][c],[t]scale_cuda=1280:720[v1],[w]scale_cuda=640:360,hwdownload,format=yuv420p[v2],[c]scale_cuda=224:126,hwdownload,format=yuv420p[c1],[c1]select='isnan(prev_selected_t)+gte(t-prev_selected_t,10)+gt(scene,0.65)'[cr]" -map [v1] -c:v h264_nvenc -profile:v main -level:v 4 -b:v 2.5M -g 15 -bf:v 2 -b_ref_mode 1 -map [a1] -c:a aac -b:a 128k -y "D:\test\out.mp4" -map [v2] -c:v wmv2 -b:v 1m -map [a2] -c:a wmav2 -b:a 128k -ac 2 -y "D:\test\out.wmv" -map [cr] -vsync 0 -f image2 -frame_pts 1 "D:\TEST\jpg%d.jpg"
처음에는 어려워 보이지만 하다보면 익숙해질 것입니다.
SBS 미디어IT팀 방송인프라파트