예전에 동영상의 일부분을 자르고 쉽게 저장하는 방법을 안내 했다.
이번엔 ffmpeg 라는 프로그램을 가지고 동일한 코덱의 영상 2개를 쉽게 합치는 방법입니다.
ffmpeg는 그 프로그램의 깊이가 너무 심오해서, 한번 깊이 있게 들어가면 빠져나오기 어렵습니다 ㅎㅎ
2개 이상의 영상을 합치는 방법
1. ffmpeg 다운로드 및 압축 해제
2. 고급 시스템 설정 > 환경 변수에 ffmpeg 등록
3. ffmpeg 명령으로 영상 합치기
1. ffmpeg 다운로드 및 압축해제
압축을 해제하고 폴더명이 보기 쉽게 변경하고, 설치 없이 바로 실행될 것이기때문에 적절한 곳으로 이동한다.
2. 고급 시스템 설정 > 환경 변수에 ffmpeg 등록
① 윈도우키 + x y 클릭 --> (관련 설정) 시스템 정보 클릭 --> 고급 시스템 설정 클릭 --> [고급] 환경 변수 클릭 --> 새로 만들기 클릭 --> 변수 이름에 FFMPEG, 변수 값에 앞의 경로+\bin 적용, 예: d:\ffmpeg\bin\
3. ffmpeg 명령으로 영상 합치기
Windows 키 클릭 후, cmd 입력 엔터
명령 프롬프트 창에서 미디어 파일이 있는 폴더로 이동한다.
cd 입력 후 폴더 주소창을 드래그 드롭하면 쉽게 이동할 수 있다.
(단, C 드라이브가 아닌 D 드라이브 같은 경우 d:를 입력해줘야 한다.)
1 폴더 이동 했는데 드라이브 안 바뀌었으면 2 드라이브 이동 3 dir /b 하여 파일을 조회해보고 4 dir /b > file.txt 라고 입력하여 조회한 내용을 file.txt로 저장함 5. 메모장으로 file.txt를 열고 6. file.txt 파일 내부에 파일명 앞에 file 을 붙여 주고 영상 순서를 정해준다. 7. ffmpeg 합치는 명령어를 예: ffmpeg -f concat -i file.txt -c copy 08_all.mp4 를 사용하면 다음과 같이 영상이 합쳐진다.
d:\media_files>ffmpeg -f concat -i file.txt -c copy 08_all.mp4
ffmpeg version git-2020-04-26-1128aa8 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9.3.1 (GCC) 20200328
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
libavutil 56. 43.100 / 56. 43.100
libavcodec 58. 82.100 / 58. 82.100
libavformat 58. 42.101 / 58. 42.101
libavdevice 58. 9.103 / 58. 9.103
libavfilter 7. 79.100 / 7. 79.100
libswscale 5. 6.101 / 5. 6.101
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2bad4f80] st: 0 edit list: 1 Missing key frame while searching for timestamp: 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2bad4f80] st: 0 edit list 1 Cannot find an index entry before timestamp: 0.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2bad4f80] Auto-inserting h264_mp4toannexb bitstream filter
Input #0, concat, from 'file.txt':
Duration: N/A, start: 0.000000, bitrate: 906 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 800x450 [SAR 1:1 DAR 16:9], 781 kb/s, 29.97 fps, 29.97 tbr, 29970 tbn, 59.94 tbc
Metadata:
creation_time : 2016-08-29T15:41:20.000000Z
handler_name : Mainconcept MP4 Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s
Metadata:
creation_time : 2016-08-29T15:41:20.000000Z
handler_name : Mainconcept MP4 Sound Media Handler
Output #0, mp4, to '08_all.mp4':
Metadata:
encoder : Lavf58.42.101
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 800x450 [SAR 1:1 DAR 16:9], q=2-31, 781 kb/s, 29.97 fps, 29.97 tbr, 29970 tbn, 29970 tbc
Metadata:
creation_time : 2016-08-29T15:41:20.000000Z
handler_name : Mainconcept MP4 Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s
Metadata:
creation_time : 2016-08-29T15:41:20.000000Z
handler_name : Mainconcept MP4 Sound Media Handler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2badd800] st: 0 edit list: 1 Missing key frame while searching for timestamp: 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2badd800] st: 0 edit list 1 Cannot find an index entry before timestamp: 0.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2badd800] Auto-inserting h264_mp4toannexb bitstream filter
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2c057400] st: 0 edit list: 1 Missing key frame while searching for timestamp: 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2c057400] st: 0 edit list 1 Cannot find an index entry before timestamp: 0.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2c057400] Auto-inserting h264_mp4toannexb bitstream filter
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2c057400] st: 0 edit list: 1 Missing key frame while searching for timestamp: 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2c057400] st: 0 edit list 1 Cannot find an index entry before timestamp: 0.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b2c057400] Auto-inserting h264_mp4toannexb bitstream filter
frame=113941 fps=13711 q=-1.0 Lsize= 427128kB time=01:03:21.96 bitrate= 920.3kbits/s speed= 458x
video:365110kB audio:58285kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.881734%
d:\media_files>
완료 입니다.
이상입니다.
퍼가기 하실때는 출처 꼭 같이 남겨주시면 감사하겠습니다.
출처: 코카티비, http://cocatv.tistory.com/262
'동영상편집 > 변환툴' 카테고리의 다른 글
FFmpeg 실행 중 mpeg4_unpack_bframes to fix 발생시 (0) | 2020.05.09 |
---|---|
동영상 인강 수업 영상 용량 줄이기 (0) | 2020.05.09 |
동영상 일부분 저장 쉽고 빠르게 하는 방법 - Avidemux (0) | 2020.05.09 |
아이폰 사진 EXIF, 파일명을 IMG_년월일_시분초.JPG 로 변경하는 방법 (0) | 2020.05.09 |
FFMPEG로 동영상 회전 저장하기 (0) | 2020.05.09 |
댓글