FFmpeg의 필터그래프, 체인, 필터 등의 개념과 상호관계를 살펴본다.
1. 필터그래프, 체인, 필터
FFmpeg 의 필터그래프 (filtergraph) 는 체인 (chain) 과 필터 (filter) 로 구성된다.
각 체인은 세미콜론 (;) 으로 구분된다.
-vf [in]scale=640:480[mid];[mid]fps=25[out]
2개의 체인이 사용되었다.
각 필터는 콤마 (,) 로 구분된다.
-vf scale=640:480,fps=25
scale 필터와 fps 필터가 콤마로 구분되어 있다.
2. 스트림 지정의 생략
아래 명령은 “[in]” 스트림에 scale 필터를 적용하여 “[out]” 스트림을 생성한다.
ffmpeg -i input.mp4 -vf [in]scale=640:480[out] output.mp4
“[in]” 스트림 지정을 생략하면 앞에 있는 스트림을 지정한 것으로 간주된다.
ffmpeg -i input.mp4 -vf scale=640:480[out] output.mp4
“[out]” 스트림 지정을 생략하면 뒤에 올 스트림을 지정한 것으로 간주된다.
ffmpeg -i input.mp4 -vf [in]scale=640:480 output.mp4
스트림 지정을 모두 생략할 수도 있다.
ffmpeg -i input.mp4 -vf scale=640:480 output.mp4
3. 체인이 2개 이상일 때 스트림 지정 생략
아래 명령을 살펴보자.
ffmpeg -i input.mp4 -vf [in]scale=640:480[mid];[mid]fps=25[out] output.mp4
“[in]” 스트림에 scale 필터를 적용하여 “[mid]” 라는 중간 스트림을 생성한다. “[mid]” 스트림에 fps 필터를 적용하여 “[out]” 스트림을 생성한다.
중간 스트림의 지정을 생략할 수 있다.
ffmpeg -i input.mp4 -vf [in]scale=640:480,fps=25[out] output.mp4
체인의 개수는 1개가 된다. 각 필터는 콤마로 구분한다.
“[in]” 스트림 또는 “[out]” 스트림의 지정을 생략할 수 있다. 2개 모두 지정하지 않는 것도 가능하다.
ffmpeg -i input.mp4 -vf scale=640:480,fps=25 output.mp4