web
ffmpeg 사용법
blackbearwow
2021. 2. 26. 02:11
html video태그에서 mp4파일이 재생되지 않는다면 코덱이 문제인 것이다. mp4파일은 비디오 코덱과 오디오 코덱으로 나뉘고, 비디오 코덱도 여러가지이다.
비디오 코덱을 h264로, 오디오 코덱을 AAC로 해야지 video tag에서 정상적으로 동작한다.
ffmpeg
ffmpeg -i input.mkv output.mp4
cli로 간단히 mp4파일을 만들 수 있다. 이때 비디오 비트레이트와 오디오 비트레이트는 알아서 조정된다.
ffmpeg 옵션들
비디오 인코딩 옵션 | -c:v |
복사 | -c:v copy |
cpu로 h264 인코딩 | -c:v libx264 |
gpu로 h264 인코딩 - nvidia | -c:v h264_nvenc |
gpu로 h264 인코딩 - intel | -c:v h264_qsv |
gpu로 h264 인코딩 - amd | -c:v h264_amf |
오디오 인코딩 옵션 | -c:a |
복사 | -c:a copy |
cpu로 acc 인코딩 | -c:a aac |
고정 비트레이트 설정 | |
비디오의 비트레이트 5M/s로 지정 | -b:v 5M |
오디오의 비트레이트 192kb/s로 지정 | -b:a 192k |
파일 크기 측면에서는 -crf(가변 비트레이트 방식)이 효율적이다.
가변 비트레이트 설정(비디오만) | -crf |
고화질(저손실) | -crf 20 |
중간(기본값) | -crf 23 |
저화질 | -crf 25 |
같은 비트레이트에 품질 결정 | -preset |
인코딩 시간은 짧지만 더 나쁜 품질 | -preset fast |
보통의 품질(기본값) | -preset medium |
시간이 오래걸리지만 더 나은 품질 | -preset slow |
화질 변경 | -vf scale |
SD | -vf scale= 854×480 |
HD | -vf scale=1280×720 |
FHD | -vf scale=1920:1080 |
QHD | -vf scale=2560×1440 |
UHD | -vf scale=3840×2160 |
ffmpeg -i input.mkv -c:v h264_amf -crf 20 -preset slow -c:a aac -b:a 192k output.mp4
amd gpu로 h264, 고화질 비디오, 더 나은 품질, 오디오를 AAC, 192kbps로 인코드
ffmpeg -i input-video.avi -vn -acodec copy output-audio.m4a
video에서 음성만 추출하고싶다면 위 명령어를 사용하면 된다.
ffmpeg -i inputVideo.mp4 -ss 00:00:01 -frames:v 1 thumbnail.jpg
1초에서 섬네일 이미지를 생성
ffmpeg -i input-video.avi -i thumbnail.jpg -map 0:a -map 1 -c:a copy -c:v mjpeg -metadata:s:v title="Album cover" -disposition:v attached_pic output-audio.m4a
video에서 음성만 추출하되 섬네일도 지정
https://ffmpeg.org/ffmpeg.html
-