정보
-
업무명 : 쉘 스크립트 국/영문 번역 파일을 이용하여 이미지 및 동영상 제작
-
작성자 : 이상호
-
작성일 : 2021-01-07
-
설 명 :
-
수정이력 :
내용
[개요]
-
안녕하세요? 기상 연구 및 웹 개발을 담당하고 있는 해솔입니다.
-
오늘 포스팅에서는 국/영문 번역 파일을 이용하여 이미지 및 동영상 제작을 소개합니다.
[특징]
-
리눅스에서 이미지 및 동영상 제작을 하기 위해서 쉘 스크립트 기술이 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어
[기능]
-
구분자 파일 읽기
-
이미지 생성 및 합성
-
동영상 제작
[활용 자료]
-
자료명 : input.txt
-
자료 종류 : 번호, 영문, 국문 번역
-
확장자 : txt
[자료 처리 방안 및 활용 분석 기법]
-
없음
[사용법]
-
소스 코드 참조
[사용 OS]
-
Linux (CentOS v7.3)
-
VMware Workstation Pro v15.5
[사용 언어]
-
ShellScript (bash)
[사용 라이브러리]
-
ImageMagick v6.9.10-68
-
ffmpeg v2.8.15
소스 코드
-
소스 코드는 단계별로 수행하며 상세 설명은 다음과 같습니다.
-
작업 환경의 경우 수행 쉘, 입력 자료, 출력 자료로 구성되어 있습니다.
디렉터리명 | 파일명 | |
작업 경로 | prjDir=/SYSTEM/TEST/MakeTextToMovie | |
수행 쉘 | ${prjDir} | RunShell-MakeTextToMovie.sh |
입력 자료 | ${prjDir}/INPUT | input.txt |
설정 정보 | ${prjDir}/CONFIG | batang.ttf gulim.ttf |
이미지 | ${prjDir}/FIG | ep01_%03d.png |
동영상 | ${prjDir}/MOVIE | MakeTextToMovie.mp4 |
[명세]
-
[1 단계] 수행 쉘 실행 및 파일 읽기
-
bash RunShell-MakeTextToMovie.sh 명령어를 통해 쉘 실행
-
ls 명령어를 통해 INPUT 경로의 파일명 조회
-
IFS 명령어를 통해 파일 내에 구분자 (|)를 통해 각 변수 (type, eng, kor)로 할당
-
#!/bin/bash
inFile=$(ls INPUT/input.txt)
while IFS='|' read -r type eng kor ; do
echo $type $kor
...
done < $inFile
-
[2 단계] 이미지 생산 및 합성
-
convert 명령어를 통해 국문 (kor.png) 및 영문 (eng.png) 이미지 생산
-
composite 명령어를 통해 국/영문 이미지 합성
-
convert -transparent white -size 1280x720 -quality 100 -gravity Center -interline-spacing 100 -font Helvetica -pointsize 100 -fill blue caption:"$eng" eng.png
convert -background white -size 1280x720 -quality 100 -gravity SouthWest -font CONFIG/gulim.ttf -pointsize 50 -fill black caption:"$kor" kor.png
composite -compose over eng.png kor.png FIG/${type}.png
-
국/영문 이미지 생산
-
합성 이미지 생산
-
[3 단계] 동영상 제작
-
ffmpeg를 통해 파일명 패턴 (FIG/ep01_*.png)으로 동영상 제작
-
ffmpeg -y -framerate 1 -f image2 -pattern_type glob -i "FIG/ep01_*.png" -vcodec libx264 -pix_fmt yuv420p -r 30 -vf "scale =trunc(iw/2)*2:trunc(ih/2)*2" "MOVIE/MakeTextToMovie.mp4"
[전체]
-
RunShell-MakeTextToMovie.sh
#!/bin/bash
inFile=$(ls INPUT/input.txt)
while IFS='|' read -r type eng kor ; do
echo $type $kor
convert -transparent white -size 1280x720 -quality 100 -gravity Center -interline-spacing 100 -font Helvetica -pointsize 100 -fill blue caption:"$eng" eng.png
convert -background white -size 1280x720 -quality 100 -gravity SouthWest -font CONFIG/gulim.ttf -pointsize 50 -fill black caption:"$kor" kor.png
composite -compose over eng.png kor.png FIG/${type}.png
rm -f eng.png kor.png
done < $inFile
ffmpeg -y -framerate 1 -f image2 -pattern_type glob -i "FIG/ep01_*.png" -vcodec libx264 -pix_fmt yuv420p -r 30 -vf "scale =trunc(iw/2)*2:trunc(ih/2)*2" "MOVIE/MakeTextToMovie.mp4"
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
'프로그래밍 언어 > Shell Script' 카테고리의 다른 글
[ShellScript] 쉘 스크립트 스케쥴링을 위한 크론탭 (crontab) 설정 (0) | 2021.01.17 |
---|---|
[ShellScript] 쉘 스크립트 날짜 기간에 대한 파일 조회 및 일별 통계 생산 (0) | 2021.01.06 |
[ShellScript] 쉘 스크립트 UTC 시간에 대한 파일을 이용한 KST 시간 변환 (0) | 2021.01.03 |
[ShellScript] 쉘 스크립트 사용법 (배열을 사용하는 법) (1) | 2020.07.18 |
[ShellScript] 쉘 스크립트 사용법 (변수를 사용하는 법) (2) | 2020.07.17 |
최근댓글