avi를 mp4 로 변경
ffmpeg -i input.avi -c:v copy -c:a copy outpu.mp4
avi 파일(mpeg4, mp3) 을 mp4(mp4v, mp4a) 로 변경
ffmpeg -i input.avi -c:v copy -c:a aac output.mp4
avi 를 mov로 변경
ffmpeg -i input.avi -c:v libx264 -c:a aac output.mov
mov를 gif로 변경
ffmpeg -i input.mov -ss 0 -t 5 -loop 0 -filter_complex "fps=10, scale=1024:-1[s], [s]split[a][b]; [a]palettegen[palette]; [b][palette]paletteuse" output.gif
wmv를 mp4로 변경
ffmpeg -i input.wmv -c:v livx264 -preset medium -crf 22 -c:a aac output.mp4
x265
ffmpeg -i input.mp4 -c:v libx265 -vtag hvc1 output.mp4
비디오 사이즈변경
ffmpeg -i input.mp4 -vf scale=1920:1080 -c:a copy output.mp4
메타데이터
ffmpeg -i in.mp4 -c copy -map_metadata 0 -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a -f ffmetadata in.txt
파일변경 및 날짜 처리
ffmpeg으로 x265 포맷으로 트랜스코딩하고, exiftool을 사용해 미디어 생성일을 수정
#!/bin/bash
if [ ! -f "$1" ]; then
echo "file not exist"
exit 0
fi
DATE=$(date -r $1 +"%Y:%m:%d %H:%M:%S+09:00")
read -e -p "date($DATE): " input
if [ -z "$input" ]; then
input=$DATE
fi
DATE=$input
ffmpeg -i ./$1 -c libx265 -vtag hvc1 -c:a aac -filter:v fps=30 ./$2
exiftool -CreateDate="$DATE" -ModifyDate="$DATE" -DateTimeOriginal="$DATE" -overwrite_original ./$2
폴더내 특정 파일들 일괄 변환
#!/bin/bash
INDEX=0
PREV_DATE=""
FILES=$(find . -maxdepth 1 -name "*MP4" | sort)
for file in $FILES
do
echo "file: $file"
if [ -f $file ]
then
DATE=$(date -r $file +"%Y%m%d")
DATE_TIME=$(date -r $file +"%Y:%m:%d %H:%M:%S+09:00")
if [ $PREV_DATE = $DATE ]
then
INDEX=$(($INDEX+1))
else
INDEX=1
fi
OUTPUT="$DATE"_"$INDEX".mp4
PREV_DATE="$DATE"
echo "Date: $DATE"
echo "Out: $OUTPUT"
ffmpeg -i $file -c libx265 -vtag hvc1 -c:a aac -filter:v fps=30 ./$OUTPUT
exiftool -CreateDate="$DATE_TIME" -ModifyDate="$DATE_TIME" -DateTimeOriginal="$DATE_TIME" -overwrite_original ./$OUTPUT
fi
echo
done
'프로그래밍 > 기타' 카테고리의 다른 글
github ssh 설정 (0) | 2022.09.02 |
---|---|
[Python] 직접 실행과 import 시 실행 분리 (0) | 2020.05.10 |
[git] git 주요 명령 목록 (0) | 2018.09.20 |
[git] git 서버 설정 기본사항 (0) | 2017.01.23 |