최데브는 오늘도 프로그래밍을 한다.

안드로이드에서 FFMPEG로 m3u8 to mp4 하기 본문

Android

안드로이드에서 FFMPEG로 m3u8 to mp4 하기

최데브 2023. 12. 2. 11:38
반응형

영상 플랫폼에서 일을 하다보니 m3u8 을 접할 기회가 많아졌다.

사실 우리도 모르게 많은 영상 플랫폼에서 m3u8 을 접하는데 유튜브,아프리카tv, 트위치 등 보통 많은

서비스들이 이를 채택하고 있다.

 

그 이유는 mp4로 재생할 경우에는 파일을 전부 다운로드 받아야 재생이 가능해서 

4분짜리 영상을 앞부분 3초만 볼건데도 다운을 기다려야하고 불필요한 데이터도 낭비하게 한다.

 

그것을 m3u8 파일은 n초 간격으로 파일을 잘라서 보관하기 때문에 모두 다운받지 않고

필요한 만큼만 다운로드 받아서 볼 수 있게 해준다. 

 

그러나 m3u8 파일을 재생하는 플레이어가 없다면 m3u8 파일은 일반적인 기기에서 실행하기 어렵다.

나같은 경우는 영상의 썸네일을 몇초 간격으로 추출할 필요가 있었는데 m3u8 파일은 특정 라이브러리를 쓰지 않으면 

정상적으로 썸네일 추출이 쉽지 않다.

 

그래서 mp4 파일로 변환 후 추출하는 방식을 택했는데 아래가 ffmpeg 을 이용해서 m3u8을 mp4 파일로 변환하는 명령어다.

       val command = StringBuilder()
            .append(" -i ").append(m3u8Path)
            .append(" -bsf:a aac_adtstoasc -vcodec copy -c copy -crf 50 ").append(outPath)

 

참고로 ffmpeg 은 ndk 설치를 하거나 라이브러리로 import 해야 사용할 수 있다.

반응형
Comments