====== FFMPEG ====== FFMpeg은 매우 잘 알려진 멀티미디어 데이터 조작을 위한 프로그램이다. 많은 수의 동영상 코덱을 처리할 수 있으며 기능도 다양하다. 개발자들을 위한 플랫폼이라 불친절한 단점이 있다. 그러나 기능만큼은 매우 강력하다. ffmpeg 소프트웨어는 몇 개의 구성으로 되어 있는데, * ffmpeg: 비디오 파일의 변환을 담당한다. * ffplay: 비디오 파일의 재생을 담당한다. * ffprobe: 미디어 파일의 정보를 파악할 때 사용한다. * ffserver: 동영상을 네트워크로 스트리밍(streaming)할 때 사용한다. 윈도우에서는 바로 사용할 수 없어 binary로 배포되는 ffmpeg 빌드에는 제외되어 있다. ====== 레시피 ====== ===== 영상 파일의 한 장면을 그림 파일로 추출 ===== ffmpeg -ss <시간> -i <파일 이름> -f image2 -s <그림 가로 크기>x<그림 세로 크기> \ -vframes <추출할 프레임 수> -v codec <변환 코덱> <출력 파일> * 시간: HH:MM:SS(.SSS) 로 입력한다. * 파일 이름: 입력할 영상 파일 * 그림 가로, 세로 크기: 추출할 스크린샷의 가로 사이즈 * 추출할 프레임 수: 추출할 장면 수를 정한다. * 변환 코덱: 어떤 형식의 그림파일로 만들지 지정한다. .jpg면 mjpeg, .png 면 png라고 입력한다. * 출력파일: 출력 파일의 이름을 지정한다. 스크린샷이 여러 개일 경우 '%d'와 같이 숫자를 지정할 수 있다. 예제 ffmpeg -ss 00:05:00 -i test.mp4 -f image2 -s 320x180 -vframes 1 -v codec png sreenshot.png ffmpeg -ss 00:05:00 -i test.mp4 -f image2 -s 320x180 -vframes 10 -v codec png sreenshot_%02d.png 첫번째 예는 1 프레임만 추출. 두번째 예는 10프레임을 screenshot_01.png, screenshot_02.png, ... 로 추출한다. ===== 동영상/음악 파일의 정보 분석 ===== ffprobe를 사용 ffprobe -v quiet -show_format -show_streams -of <출력 양식> -i <입력 파일> * 출력 양식: default, ini, csv, xml 을 사용할 수 있다. * 입력 파일: 입력할 파일 음악, 영상 등 멀티미디어 파일의 경우 어떤 출력을 보이며, 아닌 경우는 에러를 낸다. 그러나 단순 텍스트 파일이며, .txt 확장자를 가진 파일에 대해서는 다음과 같은 출력을 보인다. Input #0, tty, from '[파일명]': Duration: 00:00:00.04, bitrate: 5 kb/s Stream #0:0: Video: ansi, pal8, 640x400, 25 tbr, 25 tbn, 25 tbc 두번째 tty 부분의 문자가 어떤 양식인지를 알려주는 듯.