![FFmpeg를 사용하여 라이브 비디오에 티커/다양한 텍스트를 추가하려면 어떻게 해야 합니까?](https://rvso.com/image/1366209/FFmpeg%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%20%EB%B9%84%EB%94%94%EC%98%A4%EC%97%90%20%ED%8B%B0%EC%BB%A4%2F%EB%8B%A4%EC%96%91%ED%95%9C%20%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
방송하기 전에 하드 디스크에 있는 비디오에 명령을 사용하여 텍스트를 추가할 수 있습니다.
ffmpeg -y -i IMG_0696.MOV -acodec libmp3lame -vcodec msmpeg4 \
-b:a 192k -b:v 1000k -ar 44100 \
-vf "drawtext=text=string1 string2 string3 string4 string5 string6 string7 :expansion=normal:fontfile=/Windows/Fonts/cambriai.ttf: y=0:x=h-(2*lh)-n: fontcolor=white: fontsize=40: box=1: boxcolor=0x00000000@1" \
-an IMG_0696.avi
이제 다양한 시점에 다양한 텍스트를 추가하고 싶습니다. 형식이 다음과 같은 파일에서 읽어야 합니다. 예를 들어
00:00:10 : 구글 00:00:20 : 야후 00:00:30 : msft . . . 00:00:60 : 오전 . . . 00:05:30 : 자바
ffmpeg가 파일을 읽고 지정된 시간에 텍스트를 추가하도록 하는 방법이 있습니까? 결국 동영상을 방송하기 전에 동영상에 라이브 티커 기호를 추가하고 싶습니다.
답변1
에서drawtext
필터 의 소스 코드( 소스 트리에서) 그릴 문자열이 포함된 파일의 경로를 지정할 수 있는 매개변수가 libavfilter/vf_drawtext.c
있는 것 같습니다 ( 귀하의 예에서와 같이 매개변수를 설정하는 것과는 대조적입니다). 파일 경로를 로 전달 하고 비디오 출력을 보면서 파일을 업데이트하여 실험해 볼 수 있습니다 .textfile
text
textfile
파일을 업데이트하기 위해 병렬로 실행되는 다른 프로그램/데몬도 필요하지만(표시할 현재 텍스트만 포함) 이 프로그램은 시스템 시계와 동기화할 수 있다고 가정하면 상당히 간단합니다.
또는 drawtext
필터 자체를 수정하여 현재 시간 코드를 기반으로 특정 문자열을 표시할 수 있습니다(~이다FFmpeg 필터에 사용 가능). 이를 위해서는 필터의 소스 코드를 수정하고 처음부터 다시 컴파일해야 하지만 병렬로 실행되는 별도의 프로그램/데몬을 사용하지 않아도 됩니다(FFmpeg가 문자열을 그리려고 할 때마다 자체 코드가 호출되므로).
그러나 textfile
매개변수가 작동한다고 가정하면(읽기:는 매 프레임마다 업데이트됨) 텍스트 파일을 업데이트하는 간단한 데몬을 Python과 같은 스크립팅 언어로 작성할 수 있으므로 아마도 더 나은 방법일 것입니다.