Programming/Etc.
[Video] ffmpeg, ffplay 및 vlc 간단 사용법
꾸준희
2020. 10. 20. 17:42
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
참고자료 2 : peche326.tistory.com/58
참고자료 3 : hanburn.tistory.com/175
ffplay 사용법
참고자료 : whiteduck.tistory.com/131
ffplay를 사용하여 연결되어있는 Webcam 을 테스트 하는 명령어는 아래와 같다.
$ ffplay /dev/video0
그 전에 연결되어있는 카메라의 device 명을 아래와 같이 확인해야한다.
$ v4l2-ctl --list-devices
vlc 사용법
참고자료 1 : webnautes.tistory.com/1427
참고자료 2 : imsoftpro.tistory.com/16
728x90
반응형