2014-09-16 1 views

답변

4

투명 상자와 알파 채널을 사용하여 원하는 크기로 png를 만듭니다. 예 : 김프 또는 포토샵.

는이 명령을 사용 10:10 왼쪽 상단 모서리까지의 거리이다

ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10" \ 
-codec:a copy out.mp4 

.

그 후 자막을 삽입 할 수 있습니다.

+0

이 작업을 수행하려면 쉽게 그냥 [drawbox]를 사용하는 것이 더 효율적이 될 것입니다 방법 (https://ffmpeg.org/ffmpeg-filters.html "별도의 배경 상자를 만들어" #drawbox) 필터. 또한 오버레이 또는 드로 박스와 같은 필터를 사용하면 비디오를 다시 인코딩해야하지만 내 대답에 표시된대로 소프트 서브 용 ASS 자막을 사용하면 비디오가 수정되지 않습니다. – LordNeckbeard

10

Using ASS subtitles to create opaque text background

ASS 자막은 텍스트의 반투명 배경을 가질 수 있습니다. 이 작업을 수행하는 aegisub

가장 쉬운 방법으로

aegisub 함께.

  1. enter image description here 자막이 aegisub로 파일을 엽니 다.

  2. SubtitleStyles manager을 클릭하십시오.
  3. Current Script에서 Default을 선택한 다음 Edit 버튼을 누르십시오.
  4. OutlineShadow 값으로 실험하십시오. Opaque box을 확인하십시오.
  5. Colors에서 Outline 또는 Shadows 아래의 색을 클릭하십시오. 창이 열립니다. 투명도를 변경하려면 Alpha 상자의 값을 조정하십시오.
  6. 자막을 .ass 파일로 저장하십시오.

이제 AAS 파일을 사용하여 hardsubs or softsubs with ffmpeg으로 만들 수 있습니다. aegisub

없이

당신은 당신이 force_style 옵션과 함께 투명한 배경을 추가 할 subtitles filter을 사용할 수 있습니다 hardsubs을합니다. 필터가 자동으로 ASS로 변환하기 때문에

ffmpeg -i input -filter_complex "subtitles=subs.ass:force_style='OutlineColour=&H80000000,BorderStyle=3,Outline=1,Shadow=0,MarginV=20'" output 
  • 이는 FFmpeg에서 지원하는 모든 텍스트 기반의 자막과 함께 작동합니다.

  • 서식 옵션에 대해서는 SubStation Alpha (ASS) style fields을 참조하십시오.여러 줄

    자막 인해 긴 줄의 자동 포장 또는 의도적 인 줄 바꿈의 배경이 겹쳐 잠재적 추한 모양에 여러 줄이 포함 된 경우

문제 아래와 같이

enter image description here

다음과 같은 방법으로이 문제를 방지 할 수

:

  1. OutlineShadow 크기를 0으로 변경하십시오.
  2. 그림자의 알파 설정은 배경 상자의 투명도를 제어합니다. 음영 색을 클릭하여 음영 색의 Alpha을 원하는 투명도 수준으로 조정하십시오.
  3. 텍스트 편집기에서 ASS 파일을 편집하십시오. Style 줄에서 BorderStyle에 해당하는 값을 4으로 변경하십시오. 각 자막 이벤트의 테두리 상자 배경을 채 웁니다. 예 Style 라인 :

    Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H80000000,&H80000000,-1,0,0,0,100,100,0,0,4,0,0,2,10,10,10,1 
    

예 : 그것은 모든 플레이어에서 제대로 작동되지 않을 수도 있습니다 BorderStyle=4이, 비표준 값입니다

enter image description here

참고. BorderStyle 제안을 supWM4-

감사합니다.

drawbox filter drawbox

를 사용

는 배경 상자를 만드는 데 사용할 수 있습니다. 상자가 너비에 걸쳐 있도록하려는 경우 유용 할 수 있습니다.

enter image description here

ffmpeg -i input -filter_complex "drawbox=w=iw:h=24:y=ih-28:t=max:[email protected],subtitles=subs.ass" output 

단점은 줄 바꿈 또는 긴 자막 줄 바꿈을 설명해야한다는 것입니다. 상자를 키 크게하면 보상이되지만, 자막 기준선이 고정되어 있기 때문에보기 흉하게 보일 것입니다. 한 줄 자막은 맨 아래에 더 많은 패딩을 갖습니다.

+2

두 줄짜리 자막이있는 경우이 줄이 더러워집니다. 그것을 제거하는 방법이 있습니까? – sup

+1

@sup 아니에요. 또 다른 방법은 [drawbox filter] (http://ffmpeg.org/ffmpeg-filters.html#drawbox)를 사용하여 정적 인 투명 상자를 만드는 것이지만, 그 방법도 좋지 않습니다. – LordNeckbeard

+0

@LordNeckbeard 남자, 내 목숨을 구했어! 저건 완벽 해! 매력처럼 작동합니다! 어도비 앙코르 (adobe encore), 어도비 프리미어 (adobe premiere) 및 이러한 모든 물건을 지불 할 필요가 없습니다. 이런 간단한 일을 할 수 없습니다! – eusoubrasileiro

-1

같은 질문이 있어도 좋은 답변을 찾을 수 없습니다. 분명히 ffmpeg (그리고 avconv 다음과 같이 srtass 서식을 적용하는 방법을 알고있다.

avconv -i in.mp4 -vf "subtitles=subtemp.sub.0.sub:force_style='Name=Default,Fontname=Arial,Fontsize=28,PrimaryColour=&Hffffff,SecondaryColour=&Hffffff,OutlineColour=&H44000000,BackColour=&H0,BorderStyle=3,Shadow=0'" out.mp4 

(ffmpegavconv 가까운 그것을 작동, 또는해야 교체하는)

이 추가 읽기에 대한 ass, 구체적으로 무엇에 보인다 문제는 BackColourBorderStyle입니다.

0

this 이지스 스크립트를 사용할 수 있습니다. 이 스크립트는 자막의 모든 라인에 대해 투명한 배경을 자동으로 생성합니다.

Subtitle transparent background

관련 문제