정보

    • 업무명    : 쉘 스크립트 국/영문 번역 파일을 이용하여 이미지 및 동영상 제작

    • 작성자    : 이상호

    • 작성일    : 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

     

    • 국/영문 이미지 생산

     

    eng.png
    kor.png

     

    • 합성 이미지 생산

    ep01_001.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"

     

     

    MakeTextToMovie.mp4
    2.51MB

     

    [전체]

    • 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
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기