IT_Programming/C·C++_FFMPEG

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

JJun ™ 2010. 8. 17. 18:27



 출처: http://blog.syszone.co.kr/2702?category=17





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 이미지 크기는 반드시 720x608이어야 함. ( D10으로 인코딩할 경우 원본 이미지 크기가 720x576이라면 -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로 잘 합쳐지게 될 것입니다.



'IT_Programming > C·C++_FFMPEG' 카테고리의 다른 글

[펌] FFMPEG 명령 사용법  (0) 2015.08.18
FFmpeg 라이브러리 사용하기  (0) 2010.05.05