FFmpeg

wwiki
Jhkim (토론 | 기여)님의 2022년 1월 23일 (일) 05:29 판 (Jhkim님이 Ffmpeg 문서를 FFmpeg 문서로 이동하면서 넘겨주기를 덮어썼습니다)
이동: 둘러보기, 검색

개요

ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...

설명

ffmpeg는 매우 빠른 비디오와 오디오 변환기이다. 게다가 라이브 오디오/비디오 소스로부터 잡을 수도 있다. 임의의 샘플 레이트 사이에서도 변환할 수도 있고, 고품질 다중 필터로 즉각적으로 비디오를 리사이즈 할 수 있다.

ffmpeg는 -i옵션으로 지정한 입력파일들로부터(파일, pipes, 네트워크 스트림, 장치 등)임의의 숫자를 읽는다. 그리고 출력 경로(URL)로 지정된 파일들에 임의의 숫자를 쓴다. 옵션으로 해석 할 수 없는 명령 줄에서 발견 된 모든 것은 출력 경로로 간주됩니다.

원칙적으로 입출력 경로는 다른 형태들(비디오, 오디오, 자막, 첨부, 데이터)의 스트림 숫자를 포함한다. 스트림 타입들의 허용된 숫자는 컨테이너 포맷에 의해 제한될 것이다. 입력으로부터 스트림에서 출력으로 가는 것을 선택하는 것은 자동으로 되거나 -map옵션으로 지정할 수 있다.(스트림 섹션을 봐라.)

옵션에서 입력 파일들을 참조하려면 해당 인덱스(0 based)를 사용해야 한다. 예를 들어 첫번째 입력파일은 0, 두번째 입력파일은 1순이다. 비슷하게 파일 스트림들은 해당 인덱스에 의해 참조된다. 가령, 2:3은 세번째 입력파일에서 4번째 스트림을 참조한다. 스트림 지정자(specifiers) 챕터를 봐라.

일반적으로, 옵션들은 다음에 지정된 파일에 적용된다. 그러므로 순서는 중요하다. 그리고 명령줄 라인에서 같은 옵션을 여러 번 지정할 수 있다. 각 옵션은 다음의 입력이나 출력파일에 적용된다. 이 룰에서 예외는 처음에 지정된 전역 옵션들이다.(로그레벨처럼)

입력 파일과 출력 파일을 섞지마라. 모든 입력 파일들을 먼저 지정하고, 모든 출력 파일들을 지정해라. 또한 다른 파일들에 속하는 옵션을 혼용하지 마라. 모든 옵션은 오직 다음에 지정된 입력 혹은 출력파일에 적용된다. 그리고 파일들 사이에서 리셋된다.

  • 출력 파일에 비디오 비트레이트를 64kbit/s를 설정하려면
$ ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
  • 출력 파일에 프레임레이트를 24fps로 설정하려면
$ ffmpeg -i input.avi -r 24 output.avi
  • 입력 파일(raw format들만 유효하다.)의 프레임레이트를 1fps로 설정하고 출력파일에 24fps을 설정하려며
ffmpeg -r 1 -i input.m2v -r 24 output.avi

포맷 옵션은 raw 입력 파일들을 위해서 필요하다.

상세설명

ffmpeg에서 각 출력을 위한 트랜스코딩 절차는 다음 다이어그램으로 설명할 수 있다.

Ffmpeg 트랜스코딩 절차.png

스트림 선택

옵션들

스트림 사양

일반옵션들

AVOptions

메인 옵션들

-itoffset offset (input)

Set the input time offset.

비디오 옵션들

고급 비디오 옵션들

오디오 옵션들

-ac[:stream_specifier] channels (input/output,per-stream)

Set the number of audio channels.

고급 오디오 옵션들

자막 옵션들

고급 자막 옵션들

고급 옵션들

-shortest (output)

Finish encoding when the shortest input stream ends.

프리셋 파일들

예제

비디오와 오디오 grabbing

X11 grabbing

$ ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg

0.0은 X11서버의 디스플레이.스크린 번호이다. DISPLAY 환경변수와 같다.

$ ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0+10,20 /tmp/out.mpg

vaapi를 사용한 하드웨어 가속 녹화

ffmpeg -y -loglevel quiet -vaapi_device /dev/dri/renderD128 \
-f x11grab  -draw_mouse 0 -s 1360x568 -r 30 -itsoffset 1.5 -t 2:00 -i :0.0+0,200 \
-f alsa -ac 2 -t 2:00 -i pulse \
-vf 'format=nv12,hwupload' -c:v h264_vaapi -c:a aac -timelimit 240 output.mp4

외부링크

원문: https://ffmpeg.org/ffmpeg.html