FFmpeg을 활용해서 두 개의 영상을 한 개의 파일로 만들어야 했다.
찾아보니 mpegts 포맷으로 만들면 가능하다는 것을 알게 되었다.
MPEG-TS(transport stream)는 오디오, 비디오 등의 데이터 전송을 위한 통신 프로토콜로서, 디지털 영상과 소리를 다중화하고, 출력을 동기화하는 것이 목적이라고 한다. 생소한 분야이다.
FFmpeg에서 mpegts 포맷으로 변경하는 명령어는 아래와 같다.
ffmpeg -y
-i 01.video_h264_fhd_30fps.ts
-i 02.video_h264_fhd_30fps.ts
-map 0:0
-map 0:1
-map 1:0
-map 1:1
-program program_num=1:title=TEST1:st=0:st=1
-program program_num=2:title=TEST2:st=2:st=3
-codec copy
-f mpegts
mpts.ts
먼저 -i 옵션으로 두 개의 영상 파일을 input으로 주고, -map 옵션을 x:y 형태로 주게 된다. 여기서 x는 stream 번호를 말한다. 0부터 시작하는데, 첫 번째 영상 파일에 해당된다고 생각하면 될 것 같다. 그리고 y는 보통 0이 비디오 스트림, 1이 오디오 스트림이라고 한다. 위에서는 각 파일의 비디오, 오디오 스트림을 모두 사용한 것이다.
그리고 program 옵션으로 각각의 프로그램에 대한 정보를 입력한다. program_num은 말 그대로 프로그램 숫자, title은 프로그램 이름. st는 스트림을 지정한다. 첫 번째 프로그램의 경우 스트림을 st=0:st=1로 지정했는데, 이는 첫 번째(0)의 map 옵션(0:0), 두 번째의 map 옵션(0:1)을 사용한다는 의미로 이해하면 될 것 같다.
마지막으로 -f 옵션을 사용해 포맷을 mpegts로 지정해 mpts.ts 파일을 최종적으로 만들어 내게 되었다. 성공적으로 mpegts 파일을 생성했을 경우 팟플레이어에서 영상 -> 영상 선택에서 2개의 영상(TEST1, TEST2)이 존재하는 것을 볼 수 있게 된다.
출처)
MPEG 트랜스포트 스트림 - 위키백과, 우리 모두의 백과사전
.ts는 여기로 연결됩니다. 타입스크립트의 파일 확장자에 대해서는 타입스크립트 문서를 참고하십시오. 여러 개의 MPEG 프로그램이 하나로 합쳐져 안테나로 전달된다. 그 뒤 미국 디지털 TV에서 AT
ko.wikipedia.org
Multiplexing multiple single video MPEG-TS into MPTS using ffmpeg
I tried to find a solution for multiplexing different inputs (ts) into one MPTS, so that can be used as input for DVB-T modulator. Basically, what I want is to select certain TS provided by satellite
stackoverflow.com
'IT > 영상처리' 카테고리의 다른 글
예시로 알아보는 ffmpeg의 간단한 명령어 옵션 (0) | 2022.04.27 |
---|
댓글