
(사용자가 업로드한) 비디오에 워터마크 로고를 추가하고 이를 인트로와 연결하고 싶습니다. 결과 비디오는 입력 비디오와 동일한 형식을 가져야 합니다.
문제는 업로드된 비디오에 둘 이상의 오디오 스트림이 있고 자막이 포함되어 있을 때 시작됩니다.
이 명령과 같은 것을 사용하여 오디오 문제를 해결했습니다.
ffmpeg -i intro.mp4 -i input.mkv -i logo.png -filter_complex "[0:v] scale=480:270,setdar=16/9 [a]; [1:v] scale=480:270,setdar=16/9 [b]; [2:0] scale=480:270 [wm]; [b][wm] overlay[ov]; [a][0:a:0][0:a:0] [ov][1:a:0][1:a:1] concat=n=2:v=1:a=2 [vd] [a0] [a1]" -map "[vd]" -map "[a0]" -map "[a1]" -y output.mkv
그러나 출력에는 자막이 포함되어 있지 않습니다.
누구든지 도와줄 수 있나요?
답변1
사용
ffmpeg -i intro.mp4 -i input.mkv -itsoffset 4.5 -i input.mkv -i logo.png
-filter_complex
"[0:v] scale=480:270,setdar=16/9 [a];
[1:v] scale=480:270,setdar=16/9 [b];
[3:0] scale=480:270 [wm];
[b][wm] overlay[ov];
[a][0:a:0][0:a:0] [ov][1:a:0][1:a:1] concat=n=2:v=1:a=2 [vd] [a0] [a1]"
-map "[vd]" -map "[a0]" -map "[a1]" -map 2:s? -c:s copy -y output.mkv
맵 문을 지정하면 매핑된 스트림만 포함됩니다. 따라서 자막 스트림을 명시적으로 매핑해야 합니다. 하나도 없을 수 있으므로 ?
조건부 할당을 나타내기 위해 후행을 추가했습니다.
이제 인트로가 비디오 앞에 오므로 출력에서 자막 타임스탬프가 잘못되기 때문에 입력 비디오를 두 번 공급했습니다. 타임스탬프 오프셋이 두 번째 입력에 추가되고 해당 피드에서 자막이 매핑됩니다. 값 itsoffset
은 인트로 길이(초)와 동일해야 합니다. 자막을 트랜스코딩할 필요가 없습니다.