728x90
반응형

 

 

FFmpeg 이란?

 

마이클 니더마이어(Michael Niedermayer)의 주도하에 개발되고 있는 모든 동영상, 음악, 사진 포맷들의 디코딩과 인코딩을 목표로 만들어지고 있는 LGPL과 GPL 라이센스를 따르는 오픈소스 프로젝트

 

관련 프로그램(인코더와 디코더 등등)에서 표준이라 불리울 정도로 많은 프로그램들의 기반으로 이용되고 있다. 아래의 FFmpeg을 기반으로 하는 프로그램 리스트를 보면 알겠지만 거의 대부분의 비디오 관련 프로그램들이 사용하고 있다.

 

  • FFmpeg 프로젝트 자체가 모든 영상의 디코딩/인코딩을 지향하기 때문에 추가적인 코덱의 설치가 필요없다. ffmpeg.exe 파일 하나로도 인코딩이 가능
  • 멀티코어를 공식적으로 지원 한다. 따로 옵션을 적지않으면 모든 코어를 사용
  • VF(libavfilter) 기능 내장
  • FFmpeg은 쉬운 인코딩을 위해 각종 프리셋을 포함, 사실 아래의 인코더들을 쓰는 것보다 직접 FFmpeg을 이용해서 프리셋을 활용하는 것이 더 나은 화질을 보장

 

 

 

FFmpeg 에서 제공하는 것

 

  • ffmpeg - 미디어 포맷 변환 도구
  • ffserver - 라이브 방송을 하는 멀티미디어 스트리밍 서버
  • libavcodec - 오디오/비디오 코덱 라이브러리
  • libavformat - 멀티미디어 컨테이너의 디먹서/먹서 라이브러리
  • libavdevice - 입출력 장치 제어 라이브러리
  • libavfilter - 미디어 필터 라이브러리
  • libswscale - 이미지 처리 라이브러리
  • libswresample - 오디오 처리 라이브러리

 

 

FFmpeg 설치하기

sudo apt-get install ffmpeg

 

 

 

FFmpeg 옵션

 

  • -i [input]
    • 입력 파일을 지정한다.
  • -vcodec [codec], -acodec [codec] 또는 -c:v [codec], -c:a [codec]
    • 비디오 코덱, 오디오 코덱을 지정한다. 사용할 수 있는 코덱은 ffmpeg -encoders 로 확인할 수 있다. copy로 지정하면 기존 스트림을 인코딩 하지 않고(direct stream) 복사한다.
  • -vf [filter], -af [filter]
    • 비디오, 오디오에 필터를 적용한다. 리사이즈를 하거나 스피드를 바꾸거나 ass, srt 자막을 입히는 등의 처리를 할 수 있다. 자세한 것은 ffmpeg의 필터 문서를 참고하자. 참고로 자막을 입히는 건 폰트 때문에 윈도에서는 환경변수를 지정해 줘야 한다.
  • -b:v [bitrate], -b:a [bitrate]
    • 비디오, 오디오의 비트레이트를 지정한다.
  • -crf [quality]
    • 비트레이트 대신 화질 기준으로 인코딩할 때 쓰는 옵션. 0-51, 0은 무손실, 디폴트는 23
  • -y
    • 파일을 덮어쓸 일이 있어도 물어보지 않는다.
  • -re
    • 인코딩 속도를 1x(실시간)으로 제한한다. 로컬 파일을 ffserver로 스트리밍 시 실시간으로 feed를 전송하기 위해서 필요하다.
  • -f [container]
    • 출력 포맷을 지정한다. 따로 적지않으면 파일명에 맞춰서 해준다.
  • -t [time]
    • 지정된 시간 (초 단위)만큼 인코딩한다.
  • -ss [time]
    • 지정된 시간 (초 단위)만큼 건너뛰고 인코딩한다. hh:mm:ss 방식으로도 표기가 가능하다.

 

 

 

 

 

ffmpeg 사용법

 

참고자료  1 : namu.wiki/w/FFmpeg

 

FFmpeg - 나무위키

여기에 적혀있는 것들은 유명한 것들이고, 이것들 말고도 수많은 미디어 플레이어들이 FFmpeg를 기반으로 한다. 이쪽은 한마디로 정리가 가능하다. 대다수 인코더 프로그램들은 모두 FFmpeg기반이�

namu.wiki

참고자료 2 : peche326.tistory.com/58

 

컴맹이 알려주는 ffmpeg 사용법

여기는 예명 시우민, 본명 김민석 (한국인, 엑소 멤버)의 팬블로그입니다 ^A^ 온김에 예쁜 얼굴 보고 가세요 >A<)/ http://news.tf.co.kr/stars/read/exo/1699870.htm 시작 1. 컴맹이라 쓴 거는 컴에 대해 잘 모..

peche326.tistory.com

참고자료 3 : hanburn.tistory.com/175

 

[FFMPEG] Command 사용법 및 예제

ffmpeg는 오픈소스이면서, 비디오/오디오 관련한 많은 기능을 제공하고 있으며, 성능또한 상당히 좋은 편이다. ffmpeg는 크게 4가지로 분류하면 다음과 같다. 1. ffmpeg : command line 도구 ( 동영상 크기��

hanburn.tistory.com

 

 

 

 

ffplay 사용법 

 

참고자료 : whiteduck.tistory.com/131

 

[ Android ] FFplay 문서 번역

// 본 문서는 ffplay Document를 번역한 문서입니다. // // 번역 퀄리티에 책임을 지지 않음을 알려드립니다. // 목차  1. 개요  2. 설명  3. Options * Stream 명세 * 일반적인 옵션 * AV 옵션 * 메인 옵션 *..

whiteduck.tistory.com

 

ffplay를 사용하여 연결되어있는 Webcam 을 테스트 하는 명령어는 아래와 같다. 

$ ffplay /dev/video0

 

그 전에 연결되어있는 카메라의 device 명을 아래와 같이 확인해야한다. 

$ v4l2-ctl --list-devices

 

 

vlc 사용법

 

참고자료 1 : webnautes.tistory.com/1427

 

FFmpeg를 사용하여 웹캠 영상과 동영상 파일을 RTSP 스트리밍하기(RTSP streaming webcam / video files using FF

FFmpeg를 사용하여 웹캠 영상과 동영상 파일을 RTSP 스트리밍하고 RTSP URL을 입력으로 vlc에서 영상을 재생시켜봅니다. Ubuntu 20.04에서 테스트를 진행하였습니다. 2020. 7. 12 최초작성 웹캠 정보를 확인�

webnautes.tistory.com

참고자료 2 : imsoftpro.tistory.com/16

 

[FFMpeg] vlc 플레이어를 이용하여 rtsp 스트림 열기 및 ffmpeg로 재생하기

1. 로컬 비디오 파일을 rtsp 스트림으로 오픈 하는 방법은 다음과 같다. http://dg087.tistory.com/66 VLC Player - RTSP Streaming Server 설정(파일사용) RTSP Streaming Server 설정 먼저, 파일을 이용하여 RTS..

imsoftpro.tistory.com

 

728x90
반응형