백수 생활한지 어언 1달이 넘어가고 있다.  
요즘 핫한 드라마는 역시 왕좌의 게임 시즌 8 
근데 집에 있는 pc에서 스마트tv로 당연히 미라케스트가 되겠지라고 생각했던 것중에 안되는 것이 생각보다 많이 있더라... 

특히 짜증 나는 것중에 하나인 mkv는 지원 안한다는 소리... 
그리고 자막 파일을 지원 안한다는 이야기는 왜이렇게 많은 것인지.....  

 그래서 오늘은 ffmpeg을 이용하여, 영상 파일 확장자를 변경하는 작업과 자막을 랜더링 처리한 컨텐츠를 만드는 것에 대해서 알아 보도록 하자... 

0. mkv to mp4

문제의 mkv 파일을 mp4로 변환해 보자.

일단 문제가 되는 것은 일반인(그냥 컨텐츠를 사용하는 유저) 입장에서는 영상이 어떻게 생겨 먹었는지 전혀 알 필요가 없다. 그냥 용량이 큰게 영상 품질도 좋겠지라고 생각한다.

하지만 생각보다 영상의 세계는 심오하여서... 귀찮게도 컨텐츠를 배포하는 업체(Content Delivery Network : CDN)나 컨텐츠를 제공하는 서비스(youtube, netflix, tving, 옥수수 등등등)에서는 영상을 품질별로 확인, 분류, 제공을 위한 매카니즘이 매년 새로운 것이 나온다고 볼 수 있을 정도로 다양하게 나온다.

각설하고....(뭔가 다 설명하려고 하니깐... 글이 엄청 길어질 것만 같은 느낌이 온다.)

영상이나 mp4로 변환하도록 하자. 

대충 보아하니, video는 h.264에 비트레이트가 약 7500kb/s 짜리 영상이다. 그리고 오디오가 eac3 구만...

역시 이런 영상은 미라캐스트 지원따윈 안되겠지.... 

미라캐스트가 지원되는 형태로 변환을 해 보도록 하자. 

>  ffmpeg -y -threads 6 -i input.mkv -vcodec copy -acodec aac input.mp4

본인의 pc는 옥타코어(엄청 예전에 샀던 발열의 신 비쉐라 되시겠다... (어후.. 거의 10년 쓰고 있는 느낌이야...)

어익후... 아직도 이런 pc 쓰는 사람이 바로 나야나!!!

그러니... 빠르게 영상을 편집하기 위해서는 불필요한 스트림에 대해서는 인코딩 하지 않고, 오디오만 인코딩을 하도록 하자.. (노친네같은 amd cpu를 분노케 하면, 백수 지갑이 매우 힘들어진다. )

대충 스크린샷 설명을 보면, Stream #0:0 은 video 부분으로 기존에 있는 h264 설정을 그대로 사용한다는 의미, Stream #0:1은 audio 부분으로 기본의 eac3 를 aac로 변경한다는 의미이다. 

일단 해당 설정으로 ffmpeg을 돌리면, h264, aac 를 가진 mp4 영상이 나오게 된다. 

재생 잘 되는지 확인해 보자...

> ffplay -vf subtitles=input.srt input.mp4

ffplay도 자막을 뿌려줄 수 있으니... 자막까지 한번에 확인해 보도록 하자. 

...더보기

 

잘... 재생됨... 그나저나 대너리스는 정말.......읍읍읍 (전 아무말도 안했습니다.)

(흠.. 귀찮으니.. 이 다음은.... 그만 알아보도록 하자....)

는 훼이크다..ㅋㅋㅋㅋ

 

 

 

 

1. smi to srt 파일 변환

 https://smisrt.com/

 

SRT SMI 자막 변환기

SRT SMI 미드 자막파일 검색자료 인코딩 편집, 속도 변환 다운로드 사이트

smisrt.com

일단 구한 자막 파일이 smi 파일인 것은 함정...

 자막파일 형태중에 너무 많이 쓰는 smi 파일 포멧 이지만, 사실 개발자 입장에서는 굉장히 피곤한 포멧이기도 하다. 내부 규격이 확정된 것이 없고, html 확장된 듯한 포멧이기 때문에 video randering 하는 플레이어가 어떻게 구현되었느냐에 따라 재생이 될때도 있고 안될때도 있는 파일 포멧이다. 

사람들이 많이 쓰거나, blue-ray, dvd에서 사용하는 포멧으로 살짝 변환을 해 보도록 해 보자. 

스크린샷 찍은것은 접어놓았으니... 펼쳐서 보시면 되시겠다. 

...더보기

 

1) 사이트에 접속후

 

2) 파일을 선택하고
3) smi->srt로 변환하기. 인코딩은 나와있는 거의 대부분의 smi 파일이 euc-kr이므로 utf-8로 변환해 준다.  자막에 싱크 조정이 필요한 경우에는 싱크조정을 설정해주고, 필요없는 경우 "0"을 적어주자
4) 하단에 변환해서 다운로드 버튼을 누르면, 처리 완료 (사이트를 어떻게 만들었는지 나중에 확인해 보도록 하자)

2. srt to ass

두번째 단계는 srt 파일을 ass 파일 포멧을 변환하는 과정이다.  .ass 파일 포멧으로 변환되어야 ffmpeg에서 자막을 영상에 입힐 수 있다. 

- ffmpeg 을 이용한 ass 포멧 변환

ffmpeg -i input.srt output.ass 

별건 없다.... 스크린샷 참고

 

3. encoding video

- ffmpeg을 이용하여 파일 생성.

ffmpeg -i INPUT.mp4 -vf subtitles=INPUT.SRT OUTPUT.MP4
...더보기

실행 예제 스크린샷이 없는것은 죄송. 

이렇게 만든 OUTPUT.MP4 파일을 가지고 smart-tv에서 미라캐스트를 이용하여 재생하면, 영상 잘 나옴. 

ps. (왜인지 모르겠으나, .ass 파일을 만들지 않아도 될 꺼 같은 느낌은 든다. 

+ Recent posts