MultiMedia Framework(23)
-
CentOS에서 ffmpeg 설치
CENTOS에서 아래와 같은 방법으로 ffmpeg을 빌드하고 사용할 수 있다. 1. 의존 관계가 있는 library 다운로드 및 업데이트ffmpeg을 컴파일 하기 위한 dependency가 있는 라이브러리들을 설치한다. 당연히 관리자 권한으로 설치를 진행해야 한다.$> yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel 2. ffmpeg_sources 폴더 생성 ffmpeg과 관련된 소스를 다운로드 받을 폴더를 생성한다.$> mkdir ~/ffmpeg_sources 3. Yasm 설치$> cd ~/ffmpeg_sources$> git clone --d..
2015.10.20 -
이미지 사이즈 변경하기
$> ffmpeg -i input.jpg -vf scale=320:240 output.jpg 위와 같이 명령어를 실행하면 320x240 사이즈의 output.jpg 파일을 얻을 수가 있다. jpg 대신 avi의 동영상 파일을 input으로 집어넣어도 320x240 사이즈의 동영상 resizing을 할 수가 있다.
2015.10.14 -
동영상 파일에서 비디오만 출력하기
$> ffmpeg -i [파일 경로] -y -ss 00:00:01 -vcodec libx264 -s:v 720x400 -b 500k -r 30 -aspect 16:9 -t 60 -an [out 파일명] -i : 비디오를 추출할 원본 동영상 파일을 지정한다. (스트리밍 데이터일 경우에는 스트리밍 주소를 입력) -y : output 파일에 대해 동일한 파일이 존재할 경우 덮어쓰기 여부 설정. -y 옵션을 주면 덮어쓰기가 된다. -ss : 동영상으로부터 비디오 영상을 추출하고 싶은 시간대. ex) 00:00:05 (5초 후의 동영상 파일을 비디오로 추출해라) -vcodec : 비디오 코덱 정보 -s:v : 비디오 사이즈 -b : 비디오 bitrate. 초당 얼마만큼의 bit를 처리할 것인지를 결정. -r : ..
2015.10.13 -
mp4 영상에서 오디오 추출하기
$> ffmpeg -y -i [mp4 파일명] -vn -acodec libmp3lame -ar 44.1k -ac 2 -ab 128k [mp3 output 파일명] -y : output 파일에 대해 동일한 파일이 존재할 경우 덮어쓰기 여부 설정. -y 옵션을 주면 덮어쓰기가 된다. -i : 오디오를 추출할 원본 동영상 파일을 지정한다. -vn : 비디오를 추출할 필요가 없을 때 사용한다. 반대로 오디오를 추출할 필요가 없을때에는 -an을 사용한다. -acodec : 오디오 코덱을 지정한다. 위에서는 mp3 오디오 코덱을 지정하였다. -ar : 오디오 sampling rate를 지정한다. sampling rate가 과연 몰까?? 오디오 데이터는 연속된 값을 가지고 있기 때문에 이를 디지털로 표현하기 위해 대..
2015.07.09 -
Stream Seek
이번 포스팅에서는 스트림 위치 값 등을 얻기 위해 어떻게 파이프라인에 요청을 하는 지와 스트림의 위치를 어떻게 조작하는지에 대해 살펴볼 것이다. 일단 코드에 앞서 GstQuery 라는 객체가 새롭게 등장하는데, 이 GstQuery는 element나 pad에게 정보를 요청하기 위해 사용된다.이전에는 파이프라인이 구성되면 EOS나 ERROR가 발생하기 전까지는 메인 function에서 계속 대기하는 것 위주로 설명을 하였는데, 이번 포스팅에서는 주기적으로 파이프라인을 깨워서 스트림 위치에 대한 정보를 요청하고 화면에 해당 위치를 출력하는 프로그램을 짤 것이다. 실행해보면 화면이 출력되고, console 창에 스트림 위치 값이 계속 변하는 것을 볼 수 있다. typedef struct _CustomData{ ..
2015.03.24 -
동적으로 파이프라인 구축하기
이번 포스팅을 통해 동적으로 파이프라인을 구축하는 방법을 살펴볼 수가 있다. 언제나 그렇듯이 실행 ㄱㄱ $> g++ -o tutorial3 tutorial3.c `pkg-config --cflags --libs gstreamer-1.0`$>./tutorial3Pipeline state changed from NULL to READY:Received new pad 'src_0' from 'source': It has type 'video/x-raw' which is not raw audio. Ignoring.Received new pad 'src_1' from 'source': Link succeeded (type 'audio/x-raw').Pipeline state changed from READY to..
2015.03.21