Markdown 수식추가 Markdown 추가 네이버 스크립트 구글 스크립트

 이번에는 shell script(bash) 와 ffmpeg를 이용해 video resampling을 하는 법에 대해서 설명하겠습니다.

 

shell script의 경우 명령어로 한 폴더에 있는 모든 비디오에 대해 ffmpeg를 적용 시키기 위해 사용했으며, 명령어를 모아서 실행시킬 수 있는 파일이라고 생각하면 됩니다.

 

ffmpeg의 경우 간단한 video 편집기 입니다. 물론 영상을 자르거나 할 수 있지만 저는 fps 수정을 위해서 사용한거라 거기에 대해서는 설명하지 않겠습니다.

#!/bin/sh

INPUT_DIR=INPUT_VIDEOs_FOLDER_PATH

BASE_DIR=SAVE_VIDEOS_FOLDEL_PATH
OUTPUT_DIR=$BASE_DIR/Resampling_24
OUTPUT_DIR2=$BASE_DIR/Resampling_16
FILES=$(ls $INPUT_DIR | grep .mp4)

for FILE in $FILES
do
    name='basename $FILE'
    FILENAME="${FILE%.*}"
    ffmpeg -i $INPUT_DIR/$FILE -r 24 -c:v libx264 -b:v 3M -strict -2 $OUTPUT_DIR/$FILENAME.mp4
    ffmpeg -i $INPUT_DIR/$FILE -r 16 -c:v libx264 -b:v 3M -strict -2 $OUTPUT_DIR2/$FILENAME.mp4
done

실행방법

위의 내용을 복붙해서 xxx.sh로 저장하고 chmod 777 xxx.sh로 할당해주고 ./xxx.sh 명령어를 입력하면 됩니다.

설명

차근 차근 설명하겠습니다.

 

INPUT_DIR=INPUT_VIDEOs_FOLDER_PATH
위의 명령어는 동영상들이 모여있는 폴더의 PATH를 설정합니다.

 

BASE_DIR=SAVE_VIDEOS_FOLDEL_PATH OUTPUT_DIR=$BASE_DIR/Resampling_24 OUTPUT_DIR2=$BASE_DIR/Resampling_16
위의 명령어 또한 PATH를 설정하는 명령어 입니다. 저 같은 경우 기존의 동영상을 24 FPS와 16 FPS로 설정하고 싶어 이렇게 했습니다.

 

FILES=$(ls $INPUT_DIR | grep .mp4)
위의 명령어는 동영상들이 모여있는 폴더에서 MP4 형식의 동영상을 찾고 경로를 저장하는 것입니다. 즉, FILES 안에는

A.mp4
b.mp4 ...

처럼 저장되어 있습니다.

 

for FILE in $FILES do done
위의 명령어는 프로그래밍 언어에서 for 반복문과 같다고 생각하시면 됩니다. (python의 for i in list)

 

name='basename $FILE' FILENAME="${FILE%.*}"
위의 명령어는 파일 이름으로 파일을 설정해주는 부분입니다.

 

마지막으로...ffmpeg -i $INPUT_DIR/$FILE -r 24 -c:v libx264 -b:v 3M $OUTPUT_DIR/$FILENAME.mp4 ffmpeg -i $INPUT_DIR/$FILE -r 16 -c:v libx264 -b:v 3M $OUTPUT_DIR2/$FILENAME.mp4
위의 명령어는 ffmpeg를 사용하는 부분입니다.

-i : 입력 파일
-r : fps 설정
-c:v : 코덱 설정. 저는 H.264 코덱으로 설정했습니다.
-b:v : bitrate 설정.
OUTPUT.. : 저장할 장소 및 파일 이름 설정.

ffmpeg에서는 자신에게 맡게 customizing 하면 됩니다.

참고 자료

ffmpeg

shell script

shell script2

'공부 > Linux' 카테고리의 다른 글

[Linux] 압축 풀기  (0) 2019.08.21
[Linux] 디스크 용량 확인 방법  (0) 2019.07.31
[Linux] 특정 파일 개수 세기  (0) 2019.07.31

+ Recent posts