
비디오에 워터마크를 추가하고 확대해야 하는 다음 cmd를 실행하려고 합니다.
ffmpeg -i "in.avi" -i "\logo.png" -vf scale=854:-1 -preset
veryfast -crf 20 -filter_complex overlay=5:5 "ou.mkv"
다음 오류가 발생합니다.
Filtergraph 'scale=854:-1' was specified through the
-vf/-af/-filter option for output stream 0:0, which is fed from
a complex filtergraph. -vf/-af/-filter and -filter_complex
cannot be used together for the same stream.
-vf scale=854:-1 없이 확장을 시도하기 전에 cmd가 워터마크를 적용했습니다.
어떻게 하면 두 가지를 모두 달성할 수 있나요?
내가 시도한 것은 무엇입니까?
- -vf 매개변수를 입력 전, 입력 후 등으로 이동합니다.
답변1
당신은 하나를 사용할 수 있습니다필터그래프모든 필터링을 수행하려면 다음을 수행하십시오.
ffmpeg -i input.avi -i logo.png -filter_complex \
"[0:v]scale=854:-2[scaled]; \
[scaled][1:v]overlay=5:5[out]" \
-map "[out]" -map 0:a -c:v libx264 -c:a copy output.mkv
[0:v]
input.avi
첫 번째 입력( 이 예에서는) 의 비디오 스트림을 나타냅니다 .[1:v]
는 두 번째 입력의 비디오입니다(logo.png
이 예에서는).오디오는스팀 복사됨이 예에서는 다시 인코딩되는 대신; 첫 번째 입력에 오디오가 있다고 가정합니다.
모범 사례는 부적절한 스트림 선택이 발생할 수 있는 기본값에 의존하는 대신 이 예와 같이 필터 입력 및 출력의 이름을 수동으로 지정하는 것입니다.
-2
에서스케일 비디오 필터-1
x264에서는 4:2:0 크로마 서브샘플링으로 출력할 때 출력을 2로 나눌 수 있어야 하기 때문에 대신 사용됩니다 .
값 중 하나가 -n이고 n > 1인 경우 스케일 필터는 지정된 다른 차원에서 계산된 입력 이미지의 종횡비를 유지하는 값도 사용합니다. 그러나 그 후에는 계산된 차원이 n으로 나누어지는지 확인하고 필요한 경우 값을 조정합니다.