개발

MPEGTS 컨테이너 파일 MP4로 변환하는 법

개인적인 공간에서 PLEX로 영상을 관리하는데 일부기기에서 영상재생이 안된다는 내용을 받게되었다.
무슨문제인가 싶어 해당 영상의 정보를 확인해 봤는데, 코덱이나 영상자체는 문제가 없었다.

단 영상의 Container가 처음보는 MPEGTS 값으로 되어있었다.
이게 뭔가해서 알아보니 MPEGTS는 MPEG-TS(Transport Steam)으로 방송 스트리밍용이나 실시간 전송 또는 녹화용으로 쓰이는 파일 컨테이너 형식이라고 한다.

그니까 모종의 이유로 해당 영상이 라이브 방송을 녹화한 영상이었고 이를 재 인코딩하지않고 사용했던거고, 일부 구형 기기에서는 해당 컨테이너를 재생할 수 없었다는 소리였다.

이 컨테이너를 일반 영상형식인 MP4로 바꾸는거는 생각보다 쉬웠다.
나는 맥을 사용하므로 맥 터미널을 통해 설치해둔 ffmpeg 으로 아래와 같이 쉽게 바꿀 수 있었다.

ffmpeg -i input.mp4 -c copy output.mp4Copy

이렇게 단순히 ffmpeg을 통한 복사만 이행하면 영상/음성의 재인코딩 없이 컨테이너면 MP4로 바꿀 수 있다고한다.
심지어 품질손상은 전혀없다고한다.
파일 헤더만 바꾸는 느낌이랄까.

만약에 위의 방식대로 바꾼영상이 제대로 재생이 안되면 코덱이 서로 호환이 안되는거일수도있으므로 아래와 같이 재 인코딩 명령어를 통해 변환하면 된다.

ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4Copy

평소에 이런 경우를 볼일없다보니 좀 당황했는데, 생각보다 쉬운 해결방법이 있어 참 다행이다.
끝!

#문제해결
0 개의 댓글
×