- 기본 문법에 의하면 옵션들은 다음에 지정되는 파일에 적용
- 순서는 중요하고 같은 옵션을 여러 명령줄에 사용 가능
- 각 옵션들은 입력 혹은 출력 파일에 적용
1. FFMPEG 명령어 형식
ffmpeg [input options] -i [input filename] -codec:v [video options] -codec:a [audio options] [output file options] [output filename]
2. FFMPEG 주요 옵션
옵션 | 설명 |
-L | - 라이센스 보여줌 |
-h | - 도움말 출력 |
-version | - 버전 정보 |
-format | - 사용가능한 포멧, 코덱, 프로토콜을 보여줌 |
-f <string> | - 파일 포멧을 지정. (나중에 포멧 목록 참조) |
-i <string> | - 입력되는 파일 이름 |
-y | - 출력 파일 덮어쓰기 |
-t <timecode> | - 기록할 시간을 초 단위 또는 hh:mm:ss[.xxx] 형태로 설정 |
-fs <정수값> | - 최대 파일 크기를 설정(바이트 단위) |
-ss <timecode> | - 작업할 시작시간 오프셋(시작위치)을 초 단위 또는 hh:mm:ss[.xxx] 형태로 설정 |
-itsoffset <time_off> | - 설정 ts 오프셋(set the input ts offset) |
-itsscale <stream:scale> | - 입력 ts 스케일 설정(set the input ts scale) |
-album <앨범명> | - 앨범을 설정 |
-author <저자명> | - 저자를 설정 |
-comment <주석> | - 주석을 설정 |
-copyright <저작권> | - 저작권에 대한 설정 |
-title <타이틀이름> | - 타이틀을 설정 |
-timestamp <시간> | - 타임스탬프 설정 |
-genre <장르명> | - 장르를 설정 |
-dframes 숫자 | - 기록할 데이터 프레임 개수 설정 |
-v <숫자> | - 로깅 레벨 설정 |
-target <타입> | - 목표 파일 타입 지정 ("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ...) |
-xerror | - 에러시 종료 |
3. FFMPEG 추가 옵션
옵션 | 설명 |
-map <file:stream>[:syncfile:syncstream] | - 입력 스트림 매핑 설정 -map에 대한 옵션 설명은 비디오 소스+오디오 소스 맵핑하여 합치는 명령어 ffmpeg -i 비디오소스경로 -i 오디오소스경로 -c copy -map 0:v -map 1:a -y 저장할경로 -map : 소스 매핑 -map 0:v는 첫번째 Input의 video source를 사용하겠다는 것. 스트림 별로 선택도 가능 |
-map_meta_data outfile:infile | - 입력파일에서 출력파일로 저장(?)될 메타 데이터 정보 설정 |
-benchmark | - 벤치마킹할 타이밍 추가 |
-dump | - 각 입력 패킷을 덤프함 |
-hex | - 패킷을 덤프할때 페이로드도 같이 덤프함 |
-re | - 기본 프레임 속도로 입력 읽기(read input at native frame rate) |
-loop_input | - 루프 (현재 이미지하고만 작동이 됨) |
-loop_output | - 루핑을 지원하는 포멧에서 출력을 루프할 횟수 지정(0은 계속 루프함) |
-threads 개수 | - 쓰레드 개수 |
-vsync | - 비디오 싱크 방법 |
-async | - 오디오 싱크 방법 |
-adrift_threshold 임계값 | - 오디오 드리프트 임계값(audio drift threshold) |
-vglobal | - 비디오 글로벌 해더 저장 형식 |
-copyts | - 타임스탬프 복사 |
-shortest | - 최단 입력 시간 내에 인코딩 완료 |
-dts_delta_threshold 임계값 | - 타임스탬프 불연속성 델타(delta) 임계값 |
-programid | - 원하는 프로그램 개수(?) |
-muxdelay seconds | - 최대 디먹스-디코드 지연값 설정(?) |
-muxpreload seconds | - 초기 디먹스-디코드 지연값 설정(?) |
4. FFMPEG 비디오 옵션
옵션 | 설명 |
-aspect <string or float> | - 비율을 설정 ( 4:3, 16:9, 1.3333, 1.7777 ) - set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)(비율조정 4:3, 16:9) |
-b <int> | - 비디오 비트레이트를 bit/s단위로 설정 (기본=200k) - set bitrate (in bits/s) (비트레이트 조정) |
-vb bitrate | - 비디오 비트레이트 설정 (in bits/s) - set bitrate (in bits/s) (가변비트레이트 조정) |
-vframes number | - 기록할 비디오 프레임 수 지정 - set the number of video frames to record |
-s size | - 화면 크기 지정 (WxH 또는 비율) |
-croptop size | - 상단 잘라내는 밴드 크기 지정 (픽셀단위) - set top crop band size (in pixels)(상단 잘라낼 사이즈 설정 - 단위 픽셀) |
-cropbottom size | - 하단 잘라내는 밴드 크기 지정 (픽셀단위) - set bottom crop band size (in pixels)(하단 잘라낼 사이즈 설정- 단위 필셀) |
-cropleft size | - 왼쪽 잘라내는 밴드 크기 지정 (픽셀단위) - set left crop band size (in pixels)(왼쪽 잘라낼 사이즈 설정 - 단위 픽셀) |
-cropright size | - 오른쪽 잘라내는 밴드 크기 지정 (픽셀단위) - set right crop band size (in pixels)(오른쪽 잘라낼 사이즈 설정 - 단위 필셀) |
-padtop size | - 위쪽 패드 밴드 크기 지정 (픽셀단위) - set top pad band size (in pixels) |
-padbottom size | - 하단 패드 밴드 크기 지정 (픽셀단위) - set bottom pad band size (in pixels) |
-padleft size | - 왼쪽 패드 밴드 크기 지정 (픽셀단위) - set left pad band size (in pixels) |
-padright size | - 오른쪽 패드 밴드 크기 지정 (픽셀단위) - set right pad band size (in pixels) |
-padcolor color | - 패드 밴드 색상 지정 (16진수 000000 ~ FFFFFF) - set color of pad bands (Hex 000000 thru FFFFFF) |
-vn | - 비디오를 비활성화(disable video) |
-vcodec codec | - 비디오 코텍를 강제로 지정 ('copy' 은 스트림을 복제) |
-sameq | - 소스와 같은 비디오 퀄리티를 사용 (implies VBR) |
-pass n | - 패스 번호를 선택 (1 또는 2) |
-passlogfile prefix | - 패스 로그 파일 이름앞에 붙일 접두사 선택 |
-newvideo | - 새로운 비디오 스트림을 현재 출력 스트림으로 추가 |
5. 추가 비디오 옵션
옵션 | 설명 |
-pix_fmt format | - 픽셀 포맷 설정. 'list'는 지원되는 모든 픽셀 포맷 보여줌 |
-intra | - 인트라 프래임만 사용 |
-vdt n | - 쓰레드홀드 취소 |
-qscale q | - 고정된 비디오 양자화범위를 사용 (VBR) |
-rc_override override | - 특정 간격에 대한 속도 제어 재정의 |
-me_threshold threshold | - 모션 추정 임계값(motion estimaton threshold) |
-deinterlace | - 사진 인터레이스 해제(deinterlace pictures) |
-psnr | - 압축 프레임의 PSNR 계산 |
-vstats | - 비디오 코딩 통계를 파일로 덤프 |
-vstats_file file | - 비디오 코딩 통계를 파일로 덤프 |
-intra_matrix matrix | - 인트라 매트릭스 계수 지정(specify intra matrix coeffs) |
-inter_matrix matrix | - 행렬 간 계수 지정(specify inter matrix coeffs) |
-top | - 상단=1/하단=0/자동=-1 필드 첫 번째(top=1/bottom=0/auto=-1 field first) |
-dc precision | - intra_dc_precision |
-vtag fourcc/tag | - 강제 비디오 태그/FOURCC |
-qphist | - QP 히스토그램 표시(show QP histogram) |
-force_fps | - 선택한 프레임 속도를 강제로 적용하고, 지원되는 최고 프레임 속도 선택을 비활성화 |
-vpre preset | - 비디오 옵션을 표시된 사전 설정으로 설정 |
6. 오디오 옵션
옵션 | 설명 |
-ab <int> | - 오디오 비트레이드를 bit/s 단위로 설정 - 값은 정수(기본 = 64k) - set bitrate (in bits/s)(초당 비트레이트를 설정 ex)128, 192, 320 etc) |
-aframes number | - 녹음할 오디오 프레임 수 설정 |
-aq quality | - 오디오 품질 설정(코덱별) |
-ar rate | - 오디오 샘플링 속도 설정(Hz 단위) - set audio sampling rate (in Hz)(오디오 샘플림을 설정함 32000,44000) |
-ac channels | - 오디오 채널 수 설정 - set number of audio channels(오디오 채널을 설정함 1-mono 2-stereo) |
-an | - 오디오 비활성화 |
-acodec codec | - 오디오 코덱 강제 적용('copy'로 스트림 복사) |
-vol volume | - 오디오 볼륨 변경(256=일반) - 볼륨을 설정함 |
-newaudio | - 현재 출력 스트림에 새 오디오 스트림을 추가 |
-alang code | - 현재 오디오 스트림의 ISO 639 언어 코드(3글자)를 설정 |
-acodec <string> | - 사용할 오디오 코덱을 지정
|
-an | - 오디오를 사용하지 않음 |
-ar <int> | - 오디오 샘플링율을 Hz단위로 설정 (기본 = 44100 Hz). |
-async <int> | - 오디오 동기화 방법 - 오디오를 타임스템프에 맞춰서 늘리거나 줄일 수 있음 - 매개변수는 오디오 변화에 의한 초당 최대 샘플 개수를 의미 -async 1은 특별한 경우로 지연 수정 없이 오디오 스트림 시작 위치가 정확한 경우에만 사용가능. |
7. 추가 오디오 옵션
옵션 | 설명 |
-atag fourcc/tag | - 강제 오디오 태그/포괄호(force audio tag/fourcc) |
-sample_fmt format | - 샘플 형식 설정 - 인자로 'list(목록)'을 지정하면 지원되는 모든 샘플 형식이 표시 |
-apre preset | - 오디오 옵션을 표시된 사전 설정으로 설정 |
8. 자막 옵션
옵션 | 설명 |
-sn | - 자막 비활성화 |
-scodec codec | - 자막 코덱 강제 적용('copy' to copy stream) |
-newsubtitle | - 현재 출력 스트림에 새 자막 스트림을 추가 |
-slang code | - 현재 자막 스트림의 ISO 639 언어 코드(3글자)를 설정 |
-spre preset | - 자막 옵션을 표시된 사전 설정으로 설정 |
9. 오디오/비디오 획득 옵션(Audio/Video grab options)
옵션 | 설명 |
-vc channel | - 비디오 그랩 채널 설정(DV1394만 해당) |
-tvstd standard | - 텔레비전 표준 설정(NTSC, PAL(SECAM)) |
-isync | - 입력 시 읽기 동기화(sync read on input) |
-bufsize <int> | - 제어버퍼 크기를 설정 (비트단위) |
-cmp <string or int> | - pel 모션 평가 비교 함수 사용 - Full pel motion estimation compare function
|
-coder <string or int> | - coder 설정
|
-cropbottom <int> | - 하단 잘려지는 화면 크기 설정(비트 단위) |
-cropleft <int> | - 왼쪽 잘려지는 화면 크기 설정(비트 단위) |
-cropright <int> | - 오른쪽 잘려지는 화면 크기 설정(비트 단위) |
-croptop <int> | - 오른쪽 잘려지는 화면 크기 설정(비트 단위) |
-deinterlace | - 픽처를 디인터페이스 시킴(Deinterlace pictures) |
-dc <int> | - Intra DC precision. |
-flags <string> | - 사용 가능 값
|
-flags2 <string> | - 사용 가능 값
|
-formats | - 가능한 포멧, 코덱, 프로토콜 등을 보여줌 |
-g <int> | - Group of pictures ( GOP ) 크기 설정 |
-genpts <boolean> | - PTS 생성( 0 = off / 1 = on ) |
-intra | - Intra frames ( I-frames )만 사용 |
-loop_input | - 반복 ( 정지 이미지에서만 사용 ) |
-maxrate <int> | - 최대 비디오 비트레이트 허용치 설정( bit/s 단위) |
-me <string or int> | - 모션 추출 방법 설정
|
-mbd <string> | - Macroblock decision 알고리즘 ( 고품질 모드)
|
-minrate <int> | - 최소 비디오 비트레이트 허용치 설정 ( bit/s 단위 ) |
-newaudio | - 새로운 오디오 스트립을 현재 출력 스트림에 추가 |
-padbottom <int> | - 하단 패드 밴드 크기설정 ( 픽셀 단위 ) - 하단 여백 크기을 말함 |
-padcolor <int> | - 패드 밴드의 색상을 설정 ( 16진수 000000 ~ FFFFFF ) - 여백 색상을 말함 |
-padleft <int> | - 왼쪽 패드 밴드 크기를 설정 ( 픽셀 단위 ) - 왼쪽 여백 크기를 말함 |
-padright <int> | - 오른쪽 패드 밴드 크기를 설정 ( 픽셀 단위 ) - 오른쪽 여백 크기를 말함 |
-padtop <int> | - 위쪽 패드 밴드 크기를 설정 ( 픽셀 단위 ) - 위쪽 여백 크기를 말함 |
-pass <int> | - 패스 수 선택 ( 1 or 2 ) - 비디오 통계치는 첫번째 패스에서 기록이되고 두번째 패스에서 비디오가 정확히 원하는 비트레이트로 생성 |
-pix_fmt <string> | - 픽셀 포맷 설정
|
-ps <int> | - 패킷 크기를 비트 단위로 설정 |
-qmax <int> | - 최대 비디오 양자화(quantizer) 값 ( VBR ) - 가변 비트레이트에서 최대치 |
-qmin <int> | - 최소 비디오 양자화(quantizer) 값 ( VBR ) - 가변 비트레이트에서 최소치 |
-qscale <int> | - 고정 비디오 양자화(quantizer) 값 ( VBR ) - 고정 비트레이스 값 |
-r <int or string> (-r rate) |
- 프레임 율 설정 ( Hz 값, 비율 혹은 약호사용 ) - 예시 : 25, 30000/1001, etc - set frame rate (Hz value, fraction or abbreviation)(프레임 레이트 조정) |
-rc_init_occupancy <int> | - 디코딩 시작 전에 rate control 버퍼에 로드되는 비트 개수 |
-s <string> (-s size) |
- 프레임 크기 설정 ( 폭x높이 또는 약호) - set frame size (WxH or abbreviation)(프레임 사이즈 조정) |
-subcmp <string or int> | - 서브 펠(pel) 모션 추정 비교 기능.
|
-ss <timecode> | - 작업할 시작시간 오프셋(시작위치)을 초 단위 또는 hh:mm:ss[.xxx] 형태로 설정 |
-t <timecode> | - 기록할 시간을 초 단위 또는 hh:mm:ss[.xxx] 형태로 설정. |
-timecode_frame_start <int> | - GOP 시작 타임코드 값을 프레임 개수로 설정( 예: 14:15:09:23 대신에 1282748사용 ) - 프레임 드롭 모드에서는 지원하지 않음 |
-top <int> | - Field dominance(필드 지배력) - top = 1 / bottom = 0 / auto = -1 |
-trellis <int> | - 속도 왜곡 최적 양자화(Rate-distortion optimal quantization) |
-vbsf <string> | - 비트스트림 필터
|
-vcodec <string> | - 비디오 코덱 지정
|
-vframes <int> | - 기록할 비디오 프레임 개수 설정 |
-vn | - 비디오 사용하지 않음 |
-vol <int> | - 오디오 볼륨 수정 ( 256=보통) |
-vsync <int> | - 비디오 동기화 방법 → 비디오를 타임스템프에 맞춰서 줄이거나 늘릴 수 있음 - 프레임을 복제하거나 버리는 방법을 사용 -map 옵션을 사용해서 타임스탬프로 사용할 스트림을 선택할 수 있음 - 비디오나 오디오를 변경없이 내버려둘 수 있고 변경되지 않은 것에 동기화 시킬수 있음 |
-vtag <string> | - 비디오 FourCC/Tag 지정 |
참고 자료
'Media(미디어) > FFmpeg' 카테고리의 다른 글
CentOS 7에서 FFmpeg 설치 및 간단 테스트 (0) | 2023.09.25 |
---|---|
FFmpeg(fast forward mpeg)란 (0) | 2023.09.24 |