[ Server ][ Linux ] centos7 FFMpeg 설치방법 > linux

본문 바로가기
사이트 내 전체검색

linux

[ Server ][ Linux ] centos7 FFMpeg 설치방법

페이지 정보

작성자 웹지기 댓글 0건 조회 16,243회 작성일 19-02-28 13:00

본문

FFmpeg는 모든 종류의 온라인 스트리밍 서비스에서 널리 사용되는 오디오 및 비디오를 기록, 변환 및 스트리밍하는 인기있는 오픈 소스 솔루션

CentOS 7 서버에 FFmpeg를 설치하는 방법을 설명



1. 시스템 업데이트

sudo yum install epel-release -y

사용금지:sudo yum update -y

sudo shutdown -r now


참조 : epel = Extra Packages for Enterprise Linux→ 엔터프라이즈 리눅스를 위한 추가 패키지


2. YUM 저장소 설치

CentOS에는 공식 FFmpeg rpm 패키지가 없습니다. 

대신 타사 YUM 저장소 인 Nux Dextop을 사용하여 작업을 완료 할 수 있습니다.


sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

yum repolist


2. FFmpeg 및 FFmpeg 개발 패키지 설치

sudo yum install ffmpeg ffmpeg-devel -y


3. FFmpeg 설치 확인

ffmpeg

ffmpeg -h



4. FFMPEG 명령 살펴보기


우선 FFMPEG 공식 문서에 따르면 ffmpeg명령은 다음과 같은 구조를 지닌다.

$ ffmpeg [global_options] {[input_file_options] -i input_file} ... {[output_file_options] output_file} ...

중괄호와 대괄호는 문법적 구조를 보여주기 위한 것일 뿐 실제로 사용하지 않는다. 눈여겨 봐야 할 부분은 중괄호로 묶인 부분들이다. 

입력 파일에 대한 옵션은 입력 파일 앞에, 출력 파일에 대한 옵션은 출력 파일 앞에 기술한다. 즉, 옵션을 사용할 때, 순서를 지켜주어야 한다! 

이는 다른 명령들과 비교해서 두드러지는 차이점이다. 이 문서에서는 global_option과 input_file_options에 대해 다루지 않을 것이다. 

보다 자세한 내용을 원한다면 공식 문서를 참조하도록 하자.


파일 변환에 앞서 우리가 가지고 있는 동영상 파일에 대한 세부 사항을 알 필요가 있으며 다음처럼 출력 파일에 대한 정보를 생략한 명령어로 

확인 가능하다.

$ ffmpeg -i input_file


이제 변환 예제를 살펴보도록 하자. 다음은 filename.avi 파일을 outputfilename.mp4으로 변환하는 작업이다. 

Global 옵션이나 입력 파일(filename.avi)에 대한 옵션은 없으며, 출력 파일에 대한 옵션만 있는 명령이다.

$ ffmpeg -i "filepath/filename.avi" -codec:v libx264 -profile:v baseline -preset slow -b:v 1000k -maxrate 1000k -bufsize 2000k -vf scale=-1:720 -threads 0 -codec:a aac -b:a 128k -f mp4 -ss 00:01:00 -t 01:00:00 -strict experimental "outputfilepath/outputfilename.mp4"

-i 옵션은 입력 파일을 지정한다. 위 예제에 -i "filepath/filename.avi" 이후에 기술된 옵션들은 모두 출력 파일에 대한 옵션이다.


-codec:v 옵션은 비디오 스트림의 코덱을 지정한다. :v는 비디오를 의미한다.


-profile:v 옵션은 일종의 비디오 압축에 사용되는 기술들의 수준을 명시한다. 

장치마다 지원하는 기술 수준이 다르며 성능이 낮은 모바일 기기라면 보통 baseline을 사용한다.


-preset 옵션은 압축을 하는데 걸리는 시간 또는 압축률을 설정한다. 압축률이 높을수록 데이터를 압축하는데 시간이 오래 걸린다. 

압축률이 낮다고 품질이 좋거나 하지는 않으며 압축률이 높다면 파일 용량이 줄어 든다. 

설정값으로는 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo를 사용한다.


-b:v 옵션은 비디오 스트림의 비트레이트이다. 한프레임의 한 화소를 그리는데 얼마나 많은 정보를 사용할 것인지를 설정한다. 

값이 높을수록 영상의 품질은 좋아진다.


-maxrate 옵션은 최대 비트레이트이다. 앞의 비트레이트는 평균적인 설정값이고 그렇기에 영상의 어떤 프레임에서는 비정상적으로 큰 값을 

가질 수 있다. 이를 막기 위해 상한선을 지정하는 역할을 한다.


-bufsize 옵션은 출력 버퍼를 지정한다. 영상이 재생될 때 이 값만큼의 영상데이터가 메모리에 준비된다고 생각하자.


vf 옵션은 비디오 필터이다. 이 뒤에 2차 옵션이 따라온다.


scale 옵션은 비디오 필터의 부분 옵션으로 영상의 해상도를 지정한다. 

1024x768 형식으로 설정할 수도 있으나 예문에서처럼 -1:720 형식의 설정을 주로 쓴다. 

이는 소위 말하는 720p 영상이라는 뜻으로 영상의 높이가 720픽셀이라는 뜻이다.


threads 옵션은 작업을 하는데 사용할 CPU 코어의 갯수를 의미한다. 물론 많은 코어를 사용하면 작업 속도도 빠르다. 

0으로 설정하면 알아서 최적화된 코어 갯수를 설정하여 작업한다.


-codec:a 옵션은 오디오 스트림의 코덱을 지정한다. :a는 오디오를 의미한다.


-b:a 옵션은 오디오 스트림의 비트레이트이다. 높을수록 좋은 품질의 음성을 감상할 수 있다.


-f 옵션은 파일 포맷을 지정한다. ffmpeg는 출력 파일의 이름에 근거하여 파일 포맷을 스스로 결정하므로 특별한 일이 아니라면 

지정할 필요가 없다.


-ss 옵션은 파일의 시작 부분이다. 즉, 입력 영상의 1분부터 녹화를 하겠다는 의미이다.


-t 옵션은 멀티미디어의 재생 시간이다. 즉, 1시간 동안 재생을 하겠다는 의미이며 위의 예제의 경우, 출력 파일을 재생하게 되면 

입력 파일의 1분에서 1시간 1분까지에 해당하는 내용이 1시간동안 재생된다. -to 옵션은 입력 영상으로부터의 녹화가 끝나는 지점을 

명시하는데 -t옵션 대신 이를 사용하였다면 출력 파일은 입력 파일의 1분에서 1시 사이에 해당하는 데이터를 총 59분에 걸쳐 재생하게 된다.


-strict experimental 옵션은 제한은 완화하는 옵션이다. 

갖가지 옵션들이 섞여서 무언가 제한 사항이 있는 모양인데 이를 무시하고 작업을 진행하도록 한다.


[이 게시물은 웹지기님에 의해 2019-03-15 15:32:33 knowledge에서 이동 됨]
추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 103건 1 페이지
  • 103 [ Server ][ Linux ] CentOS 7 SELinux 설정 및 해제하기
  • SELinux 는 Linux의 보안을 강화해 주는 보안 강화 커널이고 zero-day 공격 및 buffer overflow 등 어플리케이션 취약점으로 인한 해킹을 방지해 주는 핵심 구성요소이다. 특정 서비스가 SELinux 때문에 동작하지 않는다면 SELinux 를 끄기 보다는 해당 서비스가 SELinux 하에서 잘 동작하도록 설정을 수정하는걸 권장한다. SELinux 동작 모드 enforce, permissive, disable 세 가지 모드가 있으며 RHEL/CentOS 를 설치하...
  • 웹지기 12-13 23710 0 0 댓글 0
  • 102 [ Server ][ Linux ] cron사용법(쉘스크립트, 리눅스 파일 자동실행)
  • ## 크론설정(쉘스크립트 실행)---------- ---------- ----------------------------------------------------------------------------------------------------필 드 의 미 범 위---------- ---------- ---------------------------------------------------------------------------------------------...
  • 웹지기 09-11 21962 0 0 댓글 0
  • 101 [ Server ][ Linux ] ispconfig3 설치 및 설정
  • 우선 CentOS7 minimal 설치후 Apache로 진행된 자료 입니다. 작업시 #은 복사하지말고 복사&붙혀넣기 신공으로 따라해 보세요.....^^ 코드 붙혀넣는 작업이 더 힘드네요...아고고~ # yum -y update # yum -y install vim wget @ hosts 편집 # vim /etc/hosts 자신의 서버IP (예 : 192.168.0.100) server1.mydomain.com serve...
  • 웹지기 03-04 20919 0 0 댓글 2
  • 100 [ Server ][ Linux ] CentOS 7 virtual host 설정하기 ( 가상호스트 설정 )
  • 기본적으로 들어오는 경로에 대해 httpd.conf에 정의 되어있다. httpd.conf 백업파일 없으면 파일을 백업해둔다 cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.original httpd.conf파일을 연다. vim /etc/httpd/conf/httpd.conf httpd.conf파일의 최하단에 다음의 두 줄을 추가한다. # virtual host setting ...
  • 웹지기 12-12 18948 0 0 댓글 0
  • 99 [ Server ][ Linux ] CentOS 7 mysql MariaDB 실행 / 설정 / 방화벽
  • MariaDB 실행하기 마리아db설치는 아래 링크를 따라하세요 https://funyphp.com/archive/knowledge/109 먼저 db가 실행중인지 확인하고 실행중이 아니라면 실행을 시켜줍니다. # systemctl status mysql # systemctl start mysql 서비스에 등록이 되어있지 않으면 서비스에 등록해 준다. # systemctl enable mariadb.service 방화벽 설정 ...
  • 웹지기 12-11 18247 0 0 댓글 0
  • 98 [ Server ][ Linux ] CentOS 7 명령어 정리
  • 설치 wget [URL] : URL에 있는 파일을 다운로드 받는다. rpm rpm -Uvh [rpm] : 패키지를 설치하거나, 업그레이드 한다. rpm -qi [rpm] : 패키지가 설치 되어있는지 확인한다. rpm -e [rpm] : 패키지를 삭제 한다. yum(의존성이 있는 패키지 그룹 단위) yum -y install [패키지] : 패키지를 설치한다. yum -y erase [패키지] ...
  • 웹지기 12-11 18148 0 0 댓글 0
  • 97 [ Server ][ Linux ] FFMpeg java로 연습하기
  • FFmpeg 는 다양한 디지털 음성 스트림과 영상 스트림을 녹화, 변환할 수 있는 유틸리티 프로그램이다. 원래 리눅스용으로 개발되었으나 현재는 윈도우에서도 많이 사용하고 있다. 명령어를 직접 날려서 (윈도우라면 cmd창) 동작하는 방식이며 여러가지 프리 소프트웨어와 오픈 소스 라이브러리로 구성되어 있다. 라이브러리 중에는 libavcodec 들어있는데, 이 라이브러리는 음성/영상 코덱 라이브러리로 여러 프로젝트에서 쓰이고 있다. 또, libavformat 이라는 음성/영상 다중화, 역다...
  • 웹지기 02-28 16641 0 0 댓글 0
  • 열람중 [ Server ][ Linux ] centos7 FFMpeg 설치방법
  • FFmpeg는 모든 종류의 온라인 스트리밍 서비스에서 널리 사용되는 오디오 및 비디오를 기록, 변환 및 스트리밍하는 인기있는 오픈 소스 솔루션 CentOS 7 서버에 FFmpeg를 설치하는 방법을 설명 1. 시스템 업데이트 sudo yum install epel-release -y 사용금지:sudo yum update -y sudo shutdown -r now 참조 : epel = Extra Packages for Enterprise Linux→ 엔터프라이즈 리눅스를 위한 추...
  • 웹지기 02-28 16244 0 0 댓글 0
  • 95 [ Server ][ Linux ] CentOS 7 vsftp 설치 및 설정 방화벽 설정
  • vsftp 를 yum 을 이용해 설치 합니다. # yum -y update # yum install -y vsftpd systemctl 명령어로 vsftpd를 시작/중지/상태확인한다. # systemctl status vsftpd.service # systemctl start vsftpd.service # systemctl stop vsftpd.service # systemctl restart vsftpd.servi...
  • 웹지기 12-11 15415 0 0 댓글 0
  • 94 [ Server ][ Linux ] CentOS 7 계정생성 / 계정삭제, 유저계정 권한변경, 계정기본파일 …
  • 계정 생성 : useradd 계정명 계정 생성 확인 : cat /etc/passwd | grep 계정명 계정 비밀번호 생성 : passwd 계정명 기본적으로 계정을 만들면 /home/계정명으로 생성된다. 계정생성시 자동으로 폴더와 파일을 추가하려면 /etc/skel/ 폴더에 public_html 을 만들어주고 에러확인을 위한 폴더( _log )도 추가해 주자. 만들어진 public_html 폴더에 시작파일인 index.html , index.php 파일등을 만들어서 셋팅이 잘되었는지...
  • 웹지기 12-12 14038 0 0 댓글 0
  • 93 [ Server ][ Linux ] CentOS7 rewrite_mod 설정방법
  • Apache rewrite Module-작성자 : 윤일-:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />Apache 는 추가적으로 사용할 수 있는 유용한 모듈들을 제공합니다.이번강좌에서는Apache의 URL Rewrite 모듈을 사용하기 위한 컴파일,설치와 httpd.conf의 설정방법 그리고 활용방법에 대해 알아보겠습니다.Apache 다운로드 :http://www.apache.org1....
  • 웹지기 09-28 13639 0 0 댓글 2
+8
  • 92 [ Server ][ Linux ] CentOS 7 설치 및 설정하기 다섯번째 root계정 접속 막기
  • 리눅스에서 특별한 조치를 취하지 않으면 SSH포트가 열려있고, Root 계정도 활성화 되어있다. 포트스캐닝을 통해서 포트가 SSH포트가 열려있는게 확인되면 Root에 대한 무장위 대입공격을 통해 해킹을 시도한다. 오랜 해킹시도에 노출이 되면 서버보안에 큰문제가 된다. Root계정을 막기 전에 새로운 계정을 생성해 준다. useradd [ 계정이름 ] passwd [ 계정이름 ] 새 암호 : [ 암호입력 ] 새 암호 재입력 : [ 같은 암호 재입력 ] 새로운 계정을 만들었으면,...
  • 웹지기 12-10 13383 0 0 댓글 0
  • 91 [ Server ][ Linux ] CentOS 7 데몬 종류
  • NetworkManager, NetworkManagerDispatcher 네트워크 인터페이스를 자동으로 관리하기 위한 데몬 acpid ACPI(Advanced Configuration and Power Interface) 방식의 시스템 전력 관리를 위한 데몬 anacron crond와 같은 작업 스케줄러 데몬이지만 crond와는 달리 시스템이 계속 켜져있지 않다고 가정하여 하루보다 작은 단위의 스케줄을 관리 apmd APM...
  • 웹지기 12-11 13018 0 0 댓글 0
+4
  • 90 [ Server ][ Linux ] CentOS 7 ruby 설치
  • CentOS 7 에 ruby를 설치해봅시다. 일단 루비가 설치 되어있는지 검색해봅니다. 최소버젼을 이용하여 설치를 했었기 때문에 당연히 설치가 안되어있겠죠... 예상대로 설치가 되어 있지 않습니다. 그러면 루비를 설치해 보겠습니다. 중간에 이러한 질의가 뜨는군요. Is this ok [y/n]: y라고 치면 계속 진행이 됩니다. 다운로드가 계속 진행이 되고 완료가 됩니다. 설치가 완료가 되었는지 확인해보겠습니다. 설치도 완료가 되었고, 버젼도 ...
  • 웹지기 12-27 12357 0 0 댓글 0
  • 89 [ Server ][ Linux ] CentOS7 php 소스 컴파일러 설치
  • php 소스컴파일 설치1. 라이브러리 설치// 컴파일 환경설정에 추가해준 라이브러리 들을 우선적으로 설치 해야 한다.// os를 인스톨 할때 선택해 주었다면 설치할 필요가 없다.// 빠진 것이 있다면 컴파일 실행시 경고메세지와 함께 컴파일이 중지된다.--libjpeg 설치 (다운로드 하는곳)----tar xvfz jpegsrc.v7.tar.gz----cd jpegsrc-v7----./configure --enable-shared --enable-static----make----make insta...
  • 웹지기 09-27 12098 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
8,163
어제
6,641
최대
33,828
전체
8,329,584

그누보드5
Copyright © funyphp.com. All rights reserved.