FFMpeg와 H.264(핸드폰포멧) 관련 인코딩 명령 모음

H.264 I-frame 고품질으로만 인코딩 only Highest Quality Encoding

ffmpeg -i <input_file> -vcodec libx264 -cqp 1 -intra -coder ac -an
output.mp4

(역주) -coder의 정확한 역활을 모르겠다. 다른 것도 잘모르지만.. ㅡ.ㅡㅋ


H.264 Long GOP Encoding

ffmpeg -y -i <input_file> -pass 1 -deinterlace -vcodec libx264 -b
<video_bitrate> -g <gop_size> -bf 3 -b_strategy 1 -trell 2
-subcmp 2 -cmp 2 -coder 1 -flags +loop -qmax 51 -acodec libfaac -ab
<audio_bitrate> output.mp4

ffmpeg -y -i <input_file> -pass 2 -deinterlace -vcodec libx264
-b <video_bitrate> -g <gop_size> -bf 3 -b_strategy 1 -trell
2 -subcmp 2 -cmp 2 -coder 1 -flags +loop -qmax 51 -acodec libfaac -ab
<audio_bitrate> output.mp4


MPEG-2 I-frame only Highest Quality Encoding

ffmpeg -i <input_file> -vcodec mpeg2video -qscale 1 -qmin 1 -intra
-an output.m2v


MPEG-2 Long GOP 인코딩

ffmpeg -i <input_file> -vcodec mpeg2video -b <video_bitrate>
-g <gop_size> -bf 2 -b_strategy 1 -acodec mp2 -ab
<audio_bitrate> -f vob output.mpg


MJPEG 고품질로 인코딩

ffmpeg -i <input_file> -vcodec mjpeg -qscale 1 -an output.avi


D10 을 QuickTime으로 포장하기

ffmpeg -i <input_file> -vcodec copy -acodec pcm_s16le -vtag mx5p
-vbsf imxdump output.mov

주 :
– 이 특징은 패치된 FFmpeg 버전을 필요로 한다. 현 SVN에는 유효하지 않다. 더 많은 정보는 Baptiste
Coudurier
으로 연락하세요.
– D10 30/40/50 PAL를 위해서는 -vtag to mx3p / mx4p / mx5p 을 설정
혹은,  D10 30/40/50 NTSC를 위해서는 mx3n / mx4n / mx5n 를 설정.
– 입력 D10 이미지 크기는 반드시 720×608이어야 함. ( D10으로 인코딩할 경우 원본 이미지 크기가 720×576이라면
-padtop 32 옵션을 사용하다..
– Final Cut Pro 용도.


MPEG-2 프로그램 스트림 먹싱

ffmpeg -genpts 1 -i ES_Video.m2v -i ES_Audio.mp2 -vcodec copy -acodec
copy -f vob output.mpg

Note : In order to mux multiple audio tracks into the same
file :
ffmpeg -genpts 1 -i ES_Video.m2v -i ES_Audio1.mp2 -i ES_Audio2.mp2
-vcodec copy -acodec copy -f vob output.mpg -newaudio


MPEG-2 프로그램 스트림 디먹싱

ffmpeg -i input.mpg -vcodec copy -f mpeg2video ES_Video.m2v -acodec copy
-f mp2 ES_Audio.mp2

주 : 이는 다중 오디오 채널이 있는 파일에도 동작한다.:
ffmpeg -i input.mpg -vcodec copy -f mpeg2video ES_Video.m2v -acodec copy
-f mp2 ES_Audio1.mp2 -acodec copy -f mp2 ES_Audio2.mp2


MPEG-2 시작 타임코드

ffmpeg -i <input_file> -timecode_frame_start
<start_timecode> -vcodec mpeg2video -an output.m2v

주 : 시작 타임 코드는 프래임 개수로 설정. 예를 들어, 18:12:36:15에서 시작하려면, timecode_frame_start
을 1638915으로 설정한다. ( 이는 25 fps인 동영상).

(역주) 좀더 설명하면, 18:12:36:15은 18시 12분 36초 15으로서 이를 모두 초로 변경하면 65556초
15이다. 여기에 25fps를 곱하면 원하는 시작 프레임수를 얻을 수 있다.


Audio Volume Modification

ffmpeg -i <input_file> -vol <audio_volume> -acodec
<audio_codec> <output_file>


Input Stream Selection

ffmpeg -i input.vob -map 0:2 -acodec aac -ab <audio_bitrate> -vn
output.mp4

사용할 트랜스코드 오디오 스트림은 #0:2.


Sub-clip 생성

ffmpeg -i <input_file> -ss <timecode> -t <timecode>
-vcodec copy -acodec copy <output_file>


단일 프레임으로 비디오 파일 생성

ffmpeg -loop_input -vframes <number_of_frames> -i
<input_file> <output_file>


여러 파일을 하나로 연속해서 비디오 파일 생성


type VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB | ffmpeg -i – -sameq -an
-f avi output.avi

주: type
은 도스에서 파일 내용을 화면에 표시하는 명령어. 리눅스에서 한다면 cat를 사용하면 된다.
     “-i”옵션에 “-“은 파이프 통해서 수신받는다는 의미.

주:
정 파일들은 연속해서 처리하지 못하네요. youtube에 여러 개로 불리된 동영상을 받아서 하나로 합치는 중에 처음 파일만
인코딩되고 나머지 파일은 안되는 문제가 있네요. 개별적으로는 이상이 없네요. 위의 옵션은 VOB파일 테스트시 이상없이 잘 되었던
옵션입니다.

Tip: 팁이라고 할 것은 없고, 다른 flv,
avi 같은 여러 파일을 하나로 합칠려고 바로 위의 옵션을 사용하면 안된다. 먼저 flv나 avi를 VOB로 변화시키고, 그런
다음에 위의 명령을 이용하여 VOB파일들을 합치면 된다. 그러면 자동적으로 flv나 avi의 인코딩 타입도 같은 옵션으로 변경되어
VOB로 잘 합쳐지게 될 것입니다.


서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.