Categories
FFmpeg

FFmpeg: drawtext 필터로 동영상에 텍스트 및 타임스탬프 표시하기

FFmpeg 의 drawtext 필터를 사용하여 동영상 위에 텍스트를 표시하는 방법을 알아보자.

1. 텍스트를 좌측 상단 구석에 표시

아래 명령을 살펴보자.

ffmpeg -i input.mp4 -vf “drawtext=text=’xtmci.com’:x=0:y=0:fontsize=32:fontcolor=white” output.mp4

동영상 위에 표시되는 텍스트는 ‘xtmci.com’ 이다.

표시되는 위치는 (0, 0) 이다. 좌측 상단 구석에 표시된다.

폰트 사이즈는 32 픽셀이고 폰트 색상은 흰색이다.

2. 텍스트를 정가운데에 표시

텍스트를 동영상의 정가운데에 표시해 보자.

ffmpeg -i input.mp4 -vf “drawtext=text=’xtmci.com’:x=(w-text_w)/2:y=(h-text_h)/2:fontsize=32:fontcolor=white” output.mp4

w 는 동영상의 가로 크기이다. text_w 는 텍스트 영역의 가로 크기이다.

텍스트의 x 위치를 (w-text_w)/2 로 지정했다. 이것은 w/2-text_w/2 와 같다. 동영상 가로 크기의 절반에서 텍스트 영역 가로 크기의 절반을 뺀 값이다.

h 는 동영상의 세로 크기이다. text_h 는 텍스트 영역의 세로 크기이다.

텍스트의 y 위치를 (h-text_h)/2 로 지정했다. 이것은 h/2-text_h/2 와 같다. 동영상 세로 크기의 절반에서 텍스트 영역 세로 크기의 절반을 뺀 값이다.

이와 같이 지정하면 해당 텍스트는 동영상의 정가운데에 표시된다.

3. 텍스트의 배경색 지정

텍스트에 배경색을 지정하면 가독성을 높일 수 있다. 텍스트에 배경색을 지정해 보자.

ffmpeg -i input.mp4 -vf “drawtext=text=’xtmci.com’:x=0:y=0:fontsize=32:fontcolor=white:box=1:boxcolor=black” output.mp4

box 옵션의 값이 1 이므로 배경이 표시된다.

boxcolor 옵션은 배경색을 지정한다.

4. 동영상에 타임스탬프 표시하기

drawtext 필터를 이용하여 동영상에 타임스탬프를 표시해 보자.

ffmpeg -i input.mp4 -vf “drawtext=text=’timestamp: %{pts \:hms}’:x=0:y=0:fontsize=32:fontcolor=white” output.mp4

텍스트 내용이 들어갈 자리에 timestamp 옵션과 pts 옵션이 사용되었다. 지정값이 hms 이므로 타입스탬프는 ‘시:분:초’ 형식으로 표시된다.

Categories
SSH

우분투에서 키 인증 방식으로 암호 없이 SSH 서버에 접속하기

키 페어 (pair) 방식으로 SSH 서버에 접속하는 방법을 알아보자.

1. 키 페어 만들기

키 페어는 클라이언트 컴퓨터에서 만든다.

아래 명령으로 키 페어를 생성한다.

ssh-keygen

명령을 실행하면 키 페어를 저장할 파일 이름을 입력받기 위해 프롬프트가 대기한다. 아무것도 입력하지 않고 엔터 키를 누르면 기본값이 사용된다. 기본값은 ~/.ssh/id_rsa 이다.

암호를 입력받는 프롬프트가 대기한다. 암호는 선택 사항이다. 아무것도 입력하지 않고 엔터 키를 누르면 암호는 사용되지 않는다.

키 페어는 프라이빗 키와 퍼블릭 키로 구성된다. 프라이빗 키는 ~/.ssh/id_rsa 파일에 저장되고 퍼블릭 키는 ~/.ssh/id_rsa.pub 파일에 저장된다.

2. 퍼블릭 키의 전송

퍼블릭 키는 서버 컴퓨터에 저장되어야 한다. 서버 컴퓨터는 SSH 서버가 동작 중인 컴퓨터이다.

아래 명령으로 퍼블릭 키를 서버 컴퓨터로 전송한다. 이 명령은 클라이언트 컴퓨터에서 수행한다.

ssh-copy-id user1@sshserver.com

user1 은 암호를 통해 SSH 서버에 접속할 수 있는 사용자 계정이다. sshserver.com 은 서버 컴퓨터의 호스트네임이다.

명령을 실행하면 연결 작업을 계속할 것인지 묻는 프롬프트가 대기한다. yes 라고 입력한다.

서버 컴퓨터 사용자 계정의 암호를 묻는 프롬프트가 대기한다. 암호를 입력한다.

전송된 퍼블릭 키는 서버 컴퓨터의 ~/.ssh/authorized_keys 파일에 저장된다.

3. 암호 기반 인증 금지

SSH 구성 파일을 수정하여 암호 기반 인증을 금지한다. 이 작업은 서버 컴퓨터에서 수행한다.

SSH 구성 파일을 연다.

sudo vi /etc/ssh/sshd_config

PasswordAuthentication 부분을 찾아 아래와 같이 수정한다.

PasswordAuthentication no

SSH 서버를 재시작한다.

sudo systemctl restart ssh

4. 테스트

아래 명령으로 SSH 서버에 접속해 보자.

ssh user1@sshserver.com

암호를 입력하는 과정 없이 서버에 로그인된다면 성공이다.

Categories
Linux

userdel 명령: 리눅스에서 사용자 계정 삭제하기

리눅스에서 사용자 계정을 삭제하는 방법을 알아보자.

userdel 명령으로 사용자 계정을 삭제한다.

sudo userdel xtmci

위 명령은 xtmci 라는 사용자 계정을 삭제한다. 이때 해당 사용자의 홈 디렉토리나 메일 스풀은 삭제되지 않는다.

사용자의 홈 디렉토리과 메일 스풀도 함께 삭제하려면 -r 옵션을 쓴다.

sudo userdel -r xtmci

-f 옵션을 쓰면 해당 사용자의 소유가 아닌 파일도 삭제한다.

sudo userdel -r -f xtmci

Categories
Linux

/etc/fstab 파일 엔트리의 6개 필드가 의미하는 것

/etc/fstab 파일의 엔트리에는 6개의 필드가 있다.

15b526fc-d53b-5521-9ff2-bc32361ae628 /mnt/sdb1 ext4 default 0 2

각 필드에 대해서 알아보자.

1번 필드: 블록 장치명

15b526fc-d53b-5521-9ff2-bc32361ae628

1번 필드는 블록 (block) 장치의 이름 또는 UUID 이다.

lsblk 명령으로 장치 이름, 파일시스템, 마운트 포인트, UUID 등을 확인한다.

lsblk -o NAME,FSTYPE,MOUNTPOINT,UUID

2번 필드: 마운트 포인트

mnt/sdb1

마운트 포인트는 블록 장치가 마운트될 디렉토리이다

3번 필드: 파일시스템 타입

ext4

3번 필드는 블록 장치의 파일시스템 타입을 지정한다. ext4, vfat 등이 파일시스템 타입의 예이다.

4번 필드: 마운트 옵션

default

마운트 옵션값은 주로 default 를 사용한다. default 는 아래의 7가지 옵션을 모두 지정한 것과 같다.

  rw: 블록 장치에 읽기 및 쓰기가 가능하다.
  suid: setuid 비트와 setgid 비트를 지원한다.
  dev: 문자 장치와 블록 장치를 지원한다.
  exec: 바이너리 파일과 스크립트의 실행이 가능하다.
  auto: mount 명령의 -a 옵션에 의해 마운트된다.
  nouser: 일반 사용자는 장치를 마운트할 수 없다.
  async: 파일시스템의 입출력 연산을 비동기적으로 수행한다.

5번 필드: 파일시스템 덤프 여부

0

파일시스템을 백업 프로그램으로 덤프할 것인지 여부를 지정한다. 1이면 덤프하고 0이면 덤프하지 않는다.

6번 필드: 파일시스템 검사 순서

2

6번 필드는 부팅 시에 fsck 프로그램이 파일시스템을 검사하는 순서를 지정한다. 루트 파일시스템은 1로 지정하고 나머지는 2로 지정한다. 0으로 지정하면 파일시스템을 검사하지 않는다.