| 참고 영상 |
ffmpeg
(https://ffmpeg.org/) 은 여러가지 멀티미디어 포맷을 다루는 광범위한 라이브러리이자 코덱이고 도구입니다. 이를 사용하여 멀티미디어를 다양하게 다룰 수 있습니다. ffmpeg은 미디어 관련 거의 모든 것을 다룰 수 있다고 할 수 있을 정도로 기능이 광범위합니다.
https://dts.com/
,
https://en.wikipedia.org/wiki/Dolby_Digital
)
Xiph.Org Foundation
(https://xiph.org/flac/) 에서 개발한 코덱입니다.
https://www.alexander-noe.com/video/documentation/avi.pdf
Advanced Systems Format (ASF) Specification
(https://learn.microsoft.com/en-us/windows/win32/wmformat/overview-of-the-asf-format)
1 = kb + kr + kg kr = 0.299 kg = 0.587 kb = 0.114 Y = krR + (1 - kb - kr)G + kbB Cb = 0.5(B - Y)/(1 - kb) Cr = 0.5(R - Y)/(1 - kr) R = Y + (1 - kr)Cr/0.5 G = Y - 2kb(1 - kb)Cb/(1 - kb - kr) - 2kr(1 - kr)Cr/(1 - kb - kr) B = Y + (1 - kb)Cb/0.5 => YCbCr <-> RGB 간의 kb,kr,kg 비율상수 적용후 정리된 공식 (여기서 비율 상수가 디스플레이의 특성에 따라서 조정될 수 있습니다.) Y = 0.299R + 0.587G + 0.114B Cb = 0.564(B - Y) Cr = 0.713(R - Y) R = Y + 1.402Cr G = Y - 0.344Cb - 0.714Cr B = Y + 1.772Cb
SDP: Session Description Protocol
(https://www.rfc-editor.org/rfc/rfc2327.txt)' 형식 사용.
$ sudo apt-get install ffmpeg
https://www.gyan.dev/ffmpeg/builds/
등 ffmpeg 을 Windows용으로 빌드하여 배포해주는 곳을 이용하여 다운로드하실 수 있습니다.
$ ffmpeg --help => 좀더 자세한 기본 옵션을 보려면 $ ffmpeg --help full
$ ffmpeg -version
$ ffmpeg -buildconf
$ ffmpeg [<기타옵션>] [<입력 옵션>] [<코덱 옵션>] [<출력 옵션>]
$ ffmpeg [<기타옵션>] [[<입력 옵션>] -i <입력소스 또는 입력파일>]... {[<출력 파일> <출력 관련 옵션들>] <출력 파일>}...
$ ffprobe <미디어 파일명>
$ ffplay <미디어 파일명>
$ ffmpeg -formats
$ ffmpeg -muxers
$ ffmpeg -h muxer=<muxer> 예) ffmpeg -h muxer=mp4
$ ffmpeg -demuxers
$ ffmpeg -h demuxer=<demuxer> 예) ffmpeg -h demuxer=mp4
$ ffmpeg -devices
$ ffmpeg -codecs
$ ffmpeg -decoders
$ ffmpeg -h decoder=<decoder> 예) ffmpeg -h decoder=h264
$ ffmpeg -encoders
$ ffmpeg -h encoder=<encoder> 예) ffmpeg -h encoder=h264 예) ffmpeg -h encoder=libx264 예) ffmpeg -h encoder=h264_nvenc 예) ffmpeg -h encoder=h264_omx 예) ffmpeg -h encoder=h264_v4l2m2m
$ ffmpeg -bsfs
$ ffmpeg -h bsf=<bit stream filter> 예) ffmpeg -h bsf=h264_metadata
$ ffmpeg -protocols
$ ffmpeg -h protocol=<protocol> 예) ffmpeg -h protocol=bluray
$ ffmpeg -filters
$ ffmpeg -h filter=<filter> 예) ffmpeg -h filter=chromakey
$ ffmpeg -pix_fmts
$ ffmpeg -layouts
$ ffmpeg -sample_fmts
$ ffmpeg -colors
$ ffmpeg -sources <device>
$ ffmpeg -sinks <device>
$ ffmpeg -hwaccels
=> NVENC, nVidia의 H/W Encoder 가속을 사용하여 변환 (제품에 따라서 주어질 수 있는 지원 옵션들이 다를 수 있음) $ ffmpeg -stats -hwaccel auto -i "<변환하고자 하는 입력 파일>" -threads "0" -vsync "vfr" -c:v "h264_nvenc" -preset p7 -tune hq -rc:v vbr -rc-lookahead 8 -cq:v 26 -b:v 0 -bufsize:v 240M -maxrate:v 128M -profile:v high -level:v auto -pix_fmt yuv420p -c:a "aac" -ab "192k" -ac "2" -c:s "mov_text" -f "mp4" -max_muxing_queue_size 1024 "<변환하여 저장할 파일명>.mp4" => libx264 S/W Encoder 를 사용하여 변환 (고화질 변환, 참고로 영상 퀄리티는 꽤 유지하지만 굉장히 느림) $ ffmpeg -stats -hwaccel auto -i "<변환하고자 하는 입력 파일>" -threads "0" -vsync "vfr" -c:v "libx264" -preset veryslow -rc-lookahead 8 -crf:v 26 -b:v 0 -bufsize:v 240M -maxrate:v 128M -profile:v high -pix_fmt yuv420p -c:a "aac" -ab "192k" -ac "2" -c:s "copy" -f "mp4" -max_muxing_queue_size 1024 -map 0 "<변환하여 저장할 파일명>.mp4" => h264 S/W Encoder 를 사용하여 변환 $ ffmpeg -stats -hwaccel auto -i "<변환하고자 하는 입력 파일>" -threads "0" -vsync "vfr" -c:v "h264" -preset veryslow -b:v 0 -profile:v high -pix_fmt yuv420p -c:a "aac" -ab "192k" -ac "2" -c:s "copy" -f "mp4" -max_muxing_queue_size 1024 -map 0 "<변환하여 저장할 파일명>.mp4"
$ ffmpeg -stats -hwaccel auto -i "<변환하고자 하는 입력 파일>" -threads "0" -vsync "vfr" -c:v "copy" -c:a "copy" -c:s "mov_text" -f "mp4" -max_muxing_queue_size 1024 -map 0 "<변환하여 저장할 파일명>.mp4"
$ ffmpeg -hide_banner -stats -hwaccel auto -i "<입력 동영상 파일>" -i "<입력 자막 파일(srt 형식)>" -threads "0" -c:v "copy" -c:a "copy" -map_metadata -1 -map 0:v:0 -map 0:a:1 -map 1 -c:s:0 mov_text -metadata:s:s:0 "title=자막이름" -metadata:s:s:0 "language=kor" -f "mp4" -max_muxing_queue_size 1024 "<변환하여 저장할 파일명>.mp4"
$ ffmpeg -i input.mp4 output.srt
$ ffmpeg -i input.mp4 -vf "subtitles=input.srt" output.mp4
https://ffmpeg.org/
https://namu.wiki/w/FFmpeg
nVidia Hardware Transcoding Calculator for Plex Estimates
(https://www.elpamsoft.com/?p=Plex-Hardware-Transcoding)
자주 쓰는 FFmpeg 명령어들 - NuRi
(https://www.nuridol.net/command/ffmpeg/)
YUV 비디오 정보
(https://learn.microsoft.com/ko-kr/windows/win32/medfound/about-yuv-video)
비디오 렌더링에 권장되는 8비트 YUV 형식
(https://learn.microsoft.com/ko-kr/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering)
10비트 및 16비트 YUV 비디오 형식
(https://learn.microsoft.com/ko-kr/windows/win32/medfound/10-bit-and-16-bit-yuv-video-formats)
HDR의 개요― HDR이란?
(https://www.cgkorea.co.kr/global/library/The_Ins_and_Outs_of_HDR_What_is_HDR.html)