자막이있는 ffmpeg의 오버레이
Nov 20 2020


ffmpeg -i bg.png -vcodec libvpx-vp9 -i test.webm -i test.png -y -filter_complex "[1:v]scale=1210:682[scale1];[scale1]rotate=0:c=black@0:ow=rotw(0):oh=roth(0)[rotate0];[0:v][rotate0]overlay=x=291.12:y=206.9[overlay0];[overlay0]subtitles=test.ass,overlay=x=291.12:y=206.9[textoverlay10];[2:v]scale=630:354[scale2];[scale2]rotate=0:c=black@0:ow=rotw(0):oh=roth(0)[rotate2];[textoverlay10][rotate2]overlay=x=737.13:y=50.87[overlay2];[overlay2]subtitles=test.ass,overlay=x=291.12:y=206.9" -pix_fmt yuv420p -t 10 ver.mp4
"필터 Parsed_subtitles_3에서 레이블이없는 입력 패드 0에 대해 일치하는 스트림을 찾을 수 없습니다"라는 오류 메시지가 나타납니다. 이것이 오버레이 이미지 및 자막의 올바른 방법입니까? 내가 잘못 가고있는 곳을 정정하십시오.
그 위에 이미지를 추가하면

답변
llogan Nov 20 2020 at 19:02
명령의 단순화 된 예
ffmpeg -loop 1 -i background.png -i bird.webm -filter_complex "[0]subtitles=subs.ass[bg];[bg][1]overlay=shortest=1,format=yuv420p" output.mp4
복사하여 붙여 넣을 수있는 예

ffmpeg -f lavfi -i color=c=red:s=320x240,format=yuv444p -f lavfi -i color=c=green:s=280x200,format=yuv444p -f lavfi -i [email protected]:s=80x80,format=yuva444p -filter_complex "[0][1]overlay=(W-w)/2:(H-h)/2,subtitles=subs.ass:fontsdir=/tmp/font[bg];[bg][2]overlay=10:10:format=auto,format=yuv420p" -t 10 output.mp4
- 합성 입력 (빨간색, 녹색 및 파란색 상자)에 컬러 필터 사용 .
- 오버레이 필터 를 사용하여 녹색 및 파란색 상자를 배치합니다.
- 자막 을 배치하는 자막 필터 .
- 포맷 필터 는 크로마 서브 샘플링으로 인한 흐릿함을 방지하고 파란색 상자의 알파 / 투명도를 활성화하는 데 사용됩니다.
fontsdir
이 예제에서는 외부 글꼴을 찾기 위해 옵션이 사용되었습니다.fontsdir
시스템에 이미 설치된 글꼴을 사용하려는 경우 생략 할 수 있습니다.
위의 예에 대한 subs.ass
[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: None
[Aegisub Project Garbage]
Last Style Storage: Default
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Bradley Hand,28,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,7,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,Line 1: Bradley Hand font\N{\fnComic Sans MS}Line 2: Comic Sans MS font{\fn}\NLine 3: Bradley Hand font
- AlignmentASS 파일에서 자막이 옵션 으로 배치되었습니다 .
- 기본 글꼴은
Fontname
ASS 파일의 옵션 으로 설정되었습니다 . - Line 2의 글꼴은 \fnoverride 태그를 사용하여 설정되었습니다 .